1

小さなAndroidアプリケーションを作成して、ユニークなuserIdsを作成する必要があります。 documentation saysFirebaseInstanceId - Firebase "App"またはAndroid Appごとに一意ですか?

が一意にアプリのインスタンスに

を識別し、安定した識別子を返します。しかしappは、この文脈で何を意味しているので、

私はそのためFirebaseInstanceId.getId()を使用することを考えたのか?

appは、FirebaseInstanceIdを使用する「本当の」AndroidまたはiOSアプリケーションを意味しますか?あるいは、Firebase Projectよりも「Firebase App」かそれとも良いでしょうか?

は私が生成さidが私Firebaseプロジェクトに固有のもので、userIdとしてFirebaseDatabaseに保存することができるか、私は別の方法でユニークuserIdを作成する必要があることを前提とすることはできますか?

答えて

3

この場合の「アプリ」は、デバイス上の特定のアプリのインストールを意味するものと推測できます。 javadocs for FirebaseInstanceIdを見て、インスタンスIDを変更できるときのルールに注意してください。アプリデータのインストール/アンインストールとクリアは、端末上のアプリに対するユーザーの行動の結果です。この値は変更される可能性があるため、おそらくFirebase以外での使用には適切ではないことに注意してください。

この値は、Firebaseがクラウドメッセージを受信する可能性のあるアプリケーションを識別するために使用されます。特定のユーザーを表すものではありません。ユーザーは、複数のデバイスに同じAPKをインストールし、1つのアカウントを使用してそれぞれにログインすることができます。そのユーザーにクラウドメッセージを送信したい場合は、どのアプリケーションにどのデバイスを接続するのですか?あなたはおそらくそれらのすべてに送信したいと思うでしょう。そこにインスタンスIDが入ります。アプリの一貫した動作を維持するために、ユーザーにインストールされた回数に関係なく、すべてのメッセージを対象にするために、それぞれの固有のインストールのインスタンスIDが必要です。

特定のユーザーを特定するには、Firebase Authenticationを使用し、毎回同じアカウントにログインすることを前提としているため、その1人を参照するために格納できる1つのUIDが存在します。そのユーザーへのメッセージングの目的で、複数のインスタンスIDを単一のユーザーに関連付けるのが一般的です。

1

私は最初のものは、2つの異なるアプリに

を2つの異なる方法を使用しています: 使用するとデバイスIMEI(あなたがそれをするREAD_PHONE_STATE許可を求める必要がある)、

、あなたのFirebase構造を以下のようなものになります -

/uniqueImei1/Database1..(games/notes etc..) 
/uniqueImei2/Database2..(games/notes etc..) 

OR、それをするBETTER方法は、ファーを使用することですebase認証UID、 各ユーザーは、彼は、あなたがして

String UID = FirebaseAuth.getInstance().getCurrentUser().getUid(); 

を使用します/ Facebookはなどは、そのUIDを達成するために、... UIDと呼ばれるユニークなIDを取得してくださいログイン名&パス/ Googleのログインを使用して、あなたのアプリに接続したら、あなたのfirebase構造 -

/UID1/Database1..(games/notes etc..) 
/UID2/Database2..(games/notes etc..) 
あなたはオプション2を使用する必要があります実際にある

For more information about option 2, Click here.

、幸運:)

+0

ありがとうございます。おそらくそれはより良い(最高の?)解決策です。しかし、それは私の質問に答えることはできません:) – StefMa

関連する問題