跨活动Firebase Android访问用户信息

时间:2016-06-20 21:49:57

标签: android firebase firebase-realtime-database firebase-authentication

在一项活动中,我正在登录用户,然后转到另一个用户受到欢迎的活动。我使用内置的Firebase方法使用电子邮件/密码登录用户。我在Firebase数据库中有UID,并且它与名称相关联。我只是手动输入Firebase中的用户,稍后会实施注册活动。如何在第二个活动中访问用户的UID?

3 个答案:

答案 0 :(得分:5)

除了传递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");
        }
        // ...
    }
};

此代码通常会进入您从中派生活动的基类。

答案 1 :(得分:3)

只需使用

FirebaseAuth mAuth;

mAuth = FirebaseAuth.getInstance();

FirebaseUser user = mAuth.getCurrentUser();

UID = user.getUid();

它会自动从之前的活动中获取用户。

答案 2 :(得分:0)

您应该将其保存在SharedPreferences中并在第二个活动中检索它,或者通过Intent对象将其传递给第二个活动。

SharedPreferences是在应用程序中持久存储数据的简单方法之一。存储在SharedPreferences中的数据可以从应用程序的几乎任何位置检索和修改。数据将在手机重启后生存,甚至是应用程序卸载,因为它可以由系统备份。 Here是官方解释。 here是一个很好的教程。