跨活动Firebase Android访问用户信息
在一个活动中,我登录用户,然后它转到另一个活动,在该活动中欢迎用户。我使用内置Firebase方法使用电子邮件/密码登录用户。我在Firebase数据库中有UID,它与一个名称链接。我只是在Firebase中手动输入用户,稍后将实施注册活动。如何在第二个活动中访问用户的UID?您应该将其保存在跨活动Firebase Android访问用户信息,android,firebase,firebase-realtime-database,firebase-authentication,Android,Firebase,Firebase Realtime Database,Firebase Authentication,在一个活动中,我登录用户,然后它转到另一个活动,在该活动中欢迎用户。我使用内置Firebase方法使用电子邮件/密码登录用户。我在Firebase数据库中有UID,它与一个名称链接。我只是在Firebase中手动输入用户,稍后将实施注册活动。如何在第二个活动中访问用户的UID?您应该将其保存在SharedReferences中,并在第二个活动中检索它,或者通过Intent对象将其传递到第二个活动中 SharedReferences是在应用程序中持久存储数据的简单方法之一。存储在SharedRef
SharedReferences
中,并在第二个活动中检索它,或者通过Intent
对象将其传递到第二个活动中
SharedReferences
是在应用程序中持久存储数据的简单方法之一。存储在SharedReferences
中的数据几乎可以在应用程序的任何地方检索和修改。数据将在手机重启、甚至应用程序卸载后仍然有效,因为它可以由系统进行备份。这是官方的解释。这是一个很好的教程。除了传递uid之外,您还可以。从该文档页面:
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");
}
// ...
}
};
此代码通常会进入一个基类,您可以从该基类派生活动。只需使用
FirebaseAuth mAuth;
mAuth = FirebaseAuth.getInstance();
FirebaseUser user = mAuth.getCurrentUser();
String UID = user.getUid();
它将自动从以前的活动中获取用户。您可以展开SharedReferences部分吗?我是否也需要在登录类中添加此内容?我在问候课上试过这个,但没用。这是否从Firebase创建的存储身份验证令牌中获取数据?身份验证状态确实在活动之间保持。您好@FrankvanPuffelen您知道会话保持在哪里吗?也许是共享参考资料?谢谢不管怎样,它存储在共享首选项中,只是选中了,谢谢你确定你的代码不会重新请求服务器获取相同的实例吗?