Fix Android crash: don't register push without Firebase
On Android, PushNotifications.register() calls FirebaseMessaging.getInstance(), which throws "Default FirebaseApp is not initialized" when the build has no google-services.json. Capacitor runs the plugin method on its own thread, so the exception is an UNCAUGHT NATIVE crash a JS try/catch can't stop — the app died right after sign-in and on every relaunch. Gate Android push registration on a new server flag: /api/meetings/config now returns fcm (push.fcmReady() = FCM_SERVICE_ACCOUNT present). setupNativePush skips register() on Android unless fcm is true. Web-side fix — deploys without a rebuild; push auto-enables once Firebase (client google-services.json + server FCM) is set up. iOS/APNs unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+5
-1
@@ -179,6 +179,10 @@ console.log(enabled.length ? '[push] enabled: ' + enabled.join(', ') : '[push] d
|
||||
|
||||
function isEnabled() { return webReady; } // Web Push specifically (drives /api/push/vapid)
|
||||
function publicKey() { return webReady ? PUBLIC : ''; }
|
||||
// Whether Android FCM is configured on the server. The Android app must NOT call PushNotifications.register()
|
||||
// unless Firebase is set up (client google-services.json + this) — otherwise it throws "Default FirebaseApp is
|
||||
// not initialized", an uncaught NATIVE crash. The web uses this flag to gate Android push registration.
|
||||
function fcmReady() { return !!fcmSA; }
|
||||
|
||||
// Fire-and-forget to every channel the user has: Web Push subscriptions + native device
|
||||
// tokens. Dead endpoints/tokens are pruned. Never throws.
|
||||
@@ -207,4 +211,4 @@ async function sendToUser(userId, payload) {
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { isEnabled, publicKey, sendToUser, sendCallNotification, sendCallCancel };
|
||||
module.exports = { isEnabled, publicKey, sendToUser, sendCallNotification, sendCallCancel, fcmReady };
|
||||
|
||||
Reference in New Issue
Block a user