Firebase Cloud Messagingを使用してiOSアプリにプッシュメッセージを配信しています。 マイFCMのセットアップは、複数のFirebaseアプリケーションと単一Firebaseのプロジェクトで構成されていますFIrebase FCM - プッシュメッセージが間違ったアプリに終わる
はFB Project
App1 Android
App1 iOS
App2 Android
App2 iOS
...
さて問題は、私のiOSアプリの一つに送信されたFCMメッセージが別 iOSアプリで受信してしまうということである(へ送りますApp1 iOS - App2 iOSがメッセージを受け取る)。メッセージを配信
- が直接メッセージを配信:私はことが判明 https://firebase.googleblog.com/2017/01/debugging-firebase-cloud-messaging-on.html
:私は、この優れたデバッグガイドに従っている問題をデバッグするには
cURL(セクション5)でFCMを使用すると、ランダムなアプリにメッセージが送信されます。
私のデバイス上のクライアントアプリケーションの両方に、と同じ firebaseデバイストークンがあることがわかりました。したがって、Firebaseはトークンレベルでアプリケーションを区別するようには見えません。
まだメッセージがランダムなものではなくすべてで受信されると思います。
質問1:これはFirebaseの予想される動作ですか?
- :含むランダムな結果を生成し、そのチャネルに送信
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { [[FIRMessaging messaging] subscribeToTopic:@"/topics/app1-news"]]; }
:
は、今、実際のアプリで私は、異なるチャネルに登録するようなアプリ識別子を付けることによって異なるアプリケーションをターゲットに意図した(App1)で受信したメッセージ
- 他のアプリケーション(例えばApp2)によって受信されたメッセージ
- メッセージを受信どのように私は得ることができます。メッセージはすべて
質問2で受信していない1つのアプリ(App2の、App2の)
ありがとうございました!キーチェーンがキーワードでした!ここに記載されている問題の回避策として、キーチェーンの共有を追加しました:https://firebase.googleblog.com/2016/08/ios-10-xcode-8-and-swift- 3.html。共有キーチェーンプッシュメッセージを無効にした後は、期待どおりに動作します! –