-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(in-app-messaging): Firebase V9 modular APIs (#7306)
--------- Co-authored-by: Mike Hardy <github@mikehardy.net>
- Loading branch information
Showing
6 changed files
with
314 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
import { FirebaseInAppMessagingTypes } from '..'; | ||
|
||
type FirebaseInAppMessaging = FirebaseInAppMessagingTypes.Module; | ||
|
||
export declare function getInAppMessaging(): FirebaseInAppMessaging; | ||
|
||
/** | ||
* Determines whether messages are suppressed or not. | ||
* | ||
* #### Example | ||
* | ||
* ```js | ||
* const inAppMessaging = getInAppMessaging(); | ||
* const isSuppressed = isMessagesDisplaySuppressed(inAppMessaging); | ||
* ``` | ||
*/ | ||
export declare function isMessagesDisplaySuppressed( | ||
inAppMessaging: FirebaseInAppMessaging, | ||
): boolean; | ||
|
||
/** | ||
* Enable or disable suppression of Firebase In App Messaging messages. | ||
* | ||
* When enabled, no in app messages will be rendered until either you disable suppression, or the app restarts. | ||
* This state is not persisted between app restarts. | ||
* | ||
* #### Example | ||
* | ||
* ```js | ||
* // Suppress messages | ||
* const inAppMessaging = getInAppMessaging(); | ||
* await setMessagesDisplaySuppressed(inAppMessaging, true); | ||
* ``` | ||
*/ | ||
export declare function setMessagesDisplaySuppressed( | ||
inAppMessaging: FirebaseInAppMessaging, | ||
enabled: boolean, | ||
): Promise<null>; | ||
|
||
/** | ||
* Determines whether automatic data collection is enabled or not. | ||
* | ||
* #### Example | ||
* | ||
* ```js | ||
* const inAppMessaging = getInAppMessaging(); | ||
* const isDataCollectionEnabled = isAutomaticDataCollectionEnabled(inAppMessaging); | ||
* ``` | ||
*/ | ||
export declare function isAutomaticDataCollectionEnabled( | ||
inAppMessaging: FirebaseInAppMessaging, | ||
): boolean; | ||
|
||
/** | ||
* Enable or disable automatic data collection for Firebase In-App Messaging. | ||
* | ||
* When enabled, generates a registration token on app startup if there is no valid one and generates a new token | ||
* when it is deleted (which prevents `deleteInstanceId()` from stopping the periodic sending of data). | ||
* | ||
* This setting is persisted across app restarts and overrides the setting specified in your manifest/plist file. | ||
* | ||
* #### Example | ||
* | ||
* ```js | ||
* // Disable data collection | ||
* const inAppMessaging = getInAppMessaging(); | ||
* setAutomaticDataCollectionEnabled(inAppMessaging, false); | ||
* ``` | ||
*/ | ||
export declare function setAutomaticDataCollectionEnabled( | ||
inAppMessaging: FirebaseInAppMessaging, | ||
enabled: boolean, | ||
): Promise<null>; | ||
|
||
/** | ||
* Trigger in-app messages programmatically | ||
* | ||
* #### Example | ||
* | ||
* ```js | ||
* // Suppress messages | ||
* const inAppMessaging = getInAppMessaging(); | ||
* await triggerEvent(inAppMessaging, "exampleTrigger"); | ||
* ``` | ||
*/ | ||
export declare function triggerEvent( | ||
inAppMessaging: FirebaseInAppMessaging, | ||
eventId: string, | ||
): Promise<null>; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
import { firebase } from '..'; | ||
|
||
/** | ||
* @typedef {import("..").FirebaseApp} FirebaseApp | ||
* @typedef {import("..").FirebaseInAppMessagingTypes.Module} FirebaseInAppMessaging | ||
*/ | ||
|
||
/** | ||
* @returns {FirebaseInAppMessaging} | ||
*/ | ||
export function getInAppMessaging() { | ||
return firebase.inAppMessaging(); | ||
} | ||
|
||
/** | ||
* @param {FirebaseInAppMessaging} inAppMessaging | ||
* @returns {boolean} | ||
*/ | ||
export function isMessagesDisplaySuppressed(inAppMessaging) { | ||
return inAppMessaging.isMessagesDisplaySuppressed; | ||
} | ||
|
||
/** | ||
* | ||
* @param {FirebaseInAppMessaging} inAppMessaging | ||
* @param {boolean} enabled | ||
* @returns {Promise<null>} | ||
*/ | ||
export function setMessagesDisplaySuppressed(inAppMessaging, enabled) { | ||
return inAppMessaging.setMessagesDisplaySuppressed(enabled); | ||
} | ||
|
||
/** | ||
* @param {FirebaseInAppMessaging} inAppMessaging | ||
* @returns {boolean} | ||
*/ | ||
export function isAutomaticDataCollectionEnabled(inAppMessaging) { | ||
return inAppMessaging.isAutomaticDataCollectionEnabled; | ||
} | ||
|
||
/** | ||
* @param {FirebaseInAppMessaging} inAppMessaging | ||
* @param {boolean} enabled | ||
* @returns {Promise<null>} | ||
*/ | ||
export function setAutomaticDataCollectionEnabled(inAppMessaging, enabled) { | ||
return inAppMessaging.setAutomaticDataCollectionEnabled(enabled); | ||
} | ||
|
||
/** | ||
* @param {FirebaseInAppMessaging} inAppMessaging | ||
* @param {string} eventId | ||
* @returns {Promise<null>} | ||
*/ | ||
export function triggerEvent(inAppMessaging, eventId) { | ||
return inAppMessaging.triggerEvent(eventId); | ||
} |
Oops, something went wrong.
0149480
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Successfully deployed to the following URLs:
react-native-firebase – ./
react-native-firebase-invertase.vercel.app
rnfirebase.io
react-native-firebase.vercel.app
react-native-firebase-git-main-invertase.vercel.app