あなたは二つのことを混乱している:
- Firebaseデータベースは、統計的に一意であることが保証されているIDを生成
push()
と呼ばれる方法があります。
- Firebase認証は、すべてのユーザ間で一意であることが保証されている登録ユーザごとにUIDを生成しました。
この2つの値は、互いに関係がありません。
ユーザを特定する場合は、ユーザにFirebase認証を登録し、ユーザのUIDを使用してユーザを識別します。ユーザーにログインさせたくない場合は、anonymous authenticationを使用してください。このような単純な:
FirebaseAuth.getInstance().signInAnonymously();
そして、あなたは彼らが登録するのを待つことにより、自分のUIDを取得します:
FirebaseAuth.getInstance(). addAuthStateListener(new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
} else {
// User is signed out
Log.d(TAG, "onAuthStateChanged:signed_out");
}
// ...
}
});;
UIDが自動的にデバイスに保存されています。したがって、ユーザーがアプリを再起動するとonAuthStateChanged
も起動します。ユーザーが以前にサインインしていない場合は、signInAnonymously
に電話するようにしてください。
"このキーはどこに格納できますか?" - Firebaseデータベースには、オフラインサポートもあります。詳細はこちら[こちら](https://firebase.google.com/docs/database/android/offline-capabilities) –