3

スレッド数100を読み、グーグルグーグルで読んだ後も、このエラーメッセージについてはまだ混乱しています。ファイヤーベーストークンエラーTOO_MANY_REGISTRATIONS

現在、私はFirebase Cloud Messagingを使用していますが、非常に短期的にFirebaseから自分のサーバーにメッセージを送信できるようにトークンを取得しようとしています。私はこれらのメソッドの両方で試してみた :ログにそう

String token = FirebaseInstanceId.getInstance().getToken(mySenderId, "FCM"); 

String token = FirebaseInstanceId.getInstance().getToken(); 

は、私はこれを読んで:他の記事との回答によれば、上の「あまりにも多くのインストール済みアプリケーションの原因

E/FirebaseInstanceId: Token retrieval failed: TOO_MANY_REGISTRATIONS 
           java.io.IOException: TOO_MANY_REGISTRATIONS 

ですC2DM/GCM/FCMに登録されているデバイス」を選択します。また、「デバイスにインストールされた最大100のGCM/FCM登録済みアプリケーション」という制限があることも読んでいます。

しかしこれは単に真実ではありませんか?つまり、それは正しいかもしれませんが、この問題に対する答え全体ではありません。私は常にさまざまなデバイスで動作しテストしていますが、私の現在のデバイスにはFCMに登録された100のアプリケーションがありません。実際、私のデバイスには100個のアプリケーションがインストールされていません。

以前に登録したデバイスやトークンを管理する方法はありますか?私は運なしで次のコードを実行しようとしました:私はこれが実際にどのように機能するかを理解することの運なし(文書を含む)は、異なるソースからの情報を見極めるために試してみた

FirebaseInstanceId.getInstance().deleteInstanceId(); 

。私はずっと前にC2DMの古いものと同じ問題を抱えていましたし、最近はGCMも同じ問題を抱えていました。私はFirebaseと数日前に合併して、代わりにその機能を使うようにしましたが、これは改善の考えですが、それでも私にはうかがえます。

+1

異なるデバイスまたはエミュレータで実行して、すべて同じエラーが発生していないかどうか確認しましたか? –

+0

私はさまざまなデバイスで試してきました。私がテストした4つのデバイスのうち、基本的に2つのデバイスに問題がありました。現在、Nexus 6Pでテストしていますが、現在のところ正常に動作します。トークンを受信するとエラーは発生しません。たとえば、Huawei P10ではエラーが発生します。エミュレータで試したことはありません。 これまでにHuawei P10と協力していたということです。 – Fatmajk

+0

あなたのエラーを読むと、2つの問題が気になりました。 1) 'senderId'は1つ以上のトークンとリンクしています。 2)(これは不可能です)というのは、同じトークンが複数の 'senderIds'とリンクしているということです。上記のどれも当てはまらないようにしてください。クライアントをファイアベースに登録する方法のコードを投稿できるかどうか? – riadrifai

答えて

0

私は彼らから、次の答えを得たGoogleチームと直接話した後:

チームがデータを確認したと明らかにし、デバイス が本当に通常のデバイスではなく、これはどちらかであることが示されました

  1. 仮想デバイス(エミュレータ)を何回も

  2. あまりにも多くのAPをテストするために自動化された方法で使用される実際のデバイスを再利用していますこれは実際のデバイスであれば、PS

  3. 異なるデバイス

からクローン化されたシステムパーティションのクローンイメージでカスタマイズされた実際のデバイスは、それを解決する最良の方法は、工場にあります をデバイスの実際のシステムイメージにリセットしてください。このデバイスはprobが現在2または3に固定されているため、工場出荷時に をリセットしても問題が解決しない場合はお知らせください。

私のデバイスで工場出荷時のリセットを実行していますが、問題はなくなりました。私はまだこれがどのように表示され、なぜそれがなぜ発生するのか正確には分かりません。