@clariodesk/react-native-push
v0.1.1
Published
Firebase-backed push notifications for @clariodesk/react-native. Separate package so Firebase's native code only links into apps that opt in.
Maintainers
Readme
@clariodesk/react-native-push
Firebase-backed PushTokenProvider for
@clariodesk/react-native.
Full documentation at docs.clariodesk.com.
This is a separate package on purpose. @react-native-firebase/messaging
links native code into every host binary that depends on it (autolinking has no
tree-shaking), so the core SDK never depends on Firebase — a host with no push
pays zero size cost. Install this package only if you want the ready-made
provider.
Install
npm install @clariodesk/react-native-push @react-native-firebase/app @react-native-firebase/messagingUse
import { ClarioDesk } from '@clariodesk/react-native';
import { FirebaseTokenProvider } from '@clariodesk/react-native-push';
await ClarioDesk.init({
apiKey: 'pk_live_…',
pushTokenProvider: new FirebaseTokenProvider(),
});The SDK resolves the token after it registers the device and re-registers on rotation. On iOS the provider waits for the APNs token before asking Firebase for the FCM token.
Routing incoming messages
The SDK never registers its own message handlers (there's one per app — the host owns it). In your shared background/foreground handler, route ClarioDesk messages so they don't collide with your app's own:
import messaging from '@react-native-firebase/messaging';
import { ClarioDesk } from '@clariodesk/react-native';
messaging().setBackgroundMessageHandler(async (msg) => {
if (ClarioDesk.isClarioMessage(msg.data ?? {})) return; // ours — display handled by OS
// …your app's handling…
});On a notification tap, call ClarioDesk.openTicketFromPush(data) (or use the
usePushOpened hook) to navigate to the conversation.
Registering the background handler (in
index.js, before app render) is the #1 push setup-failure cause in React Native — make sure it runs at startup.
