3

1つのアクティビティでは、ユーザにサインインし、ユーザが挨拶される別のアクティビティに移動します。私は、電子メール/パスワードを使用してユーザにサインインするための組み込みのFirebaseメソッドを使用しています。私はFirebaseデータベースにUIDを持っており、これは名前でリンクされています。 Firebaseで手動でユーザを入力するだけで、後で登録活動を実装します。 2番目のアクティビティでユーザーのUIDにアクセスするにはどうすればよいですか?アクティビティ間でのユーザ情報へのアクセスFirebase Android

答えて

4

uidを渡す代わりに、use an auth state listener to detect the user in each activityとすることもできます。そのドキュメントページから:

mAuthListener = 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"); 
     } 
     // ... 
    } 
}; 

このコードは通常、あなたのアクティビティを引き出すベースクラスになります。

+0

サインインクラスにもこれを追加する必要がありますか?私はグリーティングクラスでこれを試しましたが、うまくいきません。これは、Firebaseによって作成された格納された認証トークンからデータを取得しますか? –

+0

認証状態は実際にアクティビティ間で保持されます。 –

+0

こんにちは@FrankvanPuffelenあなたはセッションが持続されている場所を知っていますか? sharedpreferencesかもしれない?ありがとう –

0

SharedPreferencesに保存し、2番目のアクティビティで取得するか、Intentオブジェクトから2番目のアクティビティに渡すかのいずれかです。

SharedPreferencesは、データをアプリケーションに永続的に保存する簡単な方法の1つです。 SharedPreferencesに格納されたデータは、アプリのほぼすべての場所から取得して変更できます。データは電話の再起動やアプリのアンインストールでも存続します。これは、システムによってバックアップできるためです。 Hereは公式な説明です。そしてhereは良いチュートリアルです。

+0

SharedPreferences部分を拡張できますか? –

2

ちょうどそれが自動的に前のacivityからユーザーを取得します

FirebaseAuth mAuth; 

mAuth = FirebaseAuth.getInstance(); 

FirebaseUser user = mAuth.getCurrentUser(); 

UID = user.getUid(); 

を使用しています。

関連する問題