問題タブ [firebase-admin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android Firebase が再ログインするまで同期を停止するのはなぜですか?
Android Firebase は、再ログインするまで同期を停止しているようです。
- Firebase Admin SDK を使用して Firebase にデータをプッシュします。
- 電話に FCM メッセージを送信して、電話をウェイクアップします。メッセージには、新しいデータのプッシュ ID が含まれています。Android アプリは、新しいプッシュ ID が表示されるまで Firebase を読み取り、データを処理します。
通常、これは機能します。新しいプッシュ ID が表示されない状態になることがあります。ログアウト/ログインすると、再び機能し始めます。
FCM メッセージでプッシュ ID を電話に送信するため、これは競合状態ではありません。これにより、Android アプリは、プッシュ ID が表示されるまで (または、私の場合はタイムアウトになることがあります)、読み取りを行うことができます。データが Firebase にプッシュされ、Android アプリが正しい ID を読み取ろうとしていることを確認しました。
電話がこの状態になると、再ログインするまで失敗し続けます。エラーや例外はありません (uid は null ではなく、リスナーをアタッチできます)。新しいプッシュ ID が表示されないだけです。ログアウトして(アプリを再起動せずに)再度ログインすると、再び機能し始めます。これは非常に断続的な問題です。
回避策は、認証情報を保存し、電話が既知の適切なプッシュ ID の読み取りに失敗したときに新しい認証トークンで再ログインすることです (ところで、アプリは Firebase Admin SDK によって生成されたカスタム トークンを使用します)。
質問: 認証に関して何か不足していますか? 再ログインするまで Android アプリが同期を停止するのはなぜですか?