AdhubFcm class

Firebase Cloud Messaging setup for adhub apps.

options must come from the consuming app's own generated firebase_options.dart (via flutterfire configure) - unlike OneSignal's app ID, this can't be fetched from the remote config JSON at runtime, it has to be baked into the app at build time.

Constructors

AdhubFcm()

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

isInitialized bool
Whether initialize() has actually run for this app (i.e. it has firebaseOptions configured) - lets callers know whether FCM's own state is meaningful yet, or whether they should fall back to another channel.
no setter
isOptedIn Future<bool>
Whether the user has granted notification permission.
no setter

Static Methods

disableNotifications() Future<void>
Disables push notifications for the end user. No-op if initialize() hasn't run yet, mirroring enableNotifications().
enableNotifications() Future<bool>
Enables push notifications for the end user. No-op if initialize() hasn't run yet (e.g. this app has no firebaseOptions configured) - there's no topic to (re)subscribe to in that case.
initialize(FirebaseOptions options, String appId) Future<void>
maybeReRequestPermission() Future<void>
Call on every app open. If the user is already opted in, does nothing. Otherwise, checks in at most once every _reaskIntervalDays days: if the OS will still show its native permission popup (mainly an Android possibility - iOS essentially never re-shows it after an explicit answer), triggers that; otherwise shows adhub's own custom dialog, which deep-links to the device's app-settings screen since that's the only way back in once permanently denied.