我想从firestore检索当前记录的用户数据,但这显示错误[重复]

Posted

技术标签:

【中文标题】我想从firestore检索当前记录的用户数据,但这显示错误[重复]【英文标题】:i want to retrieve current logged user data from firestore but this show error [duplicate] 【发布时间】:2018-08-18 00:25:06 【问题描述】:

尝试在 null 对象引用上调用虚拟方法 com.google.firebase.auth.FirebaseUser com.google.firebase.auth.FirebaseAuth.getCurrentUser()':

MyAccount.java

public class MyAccount extends AppCompatActivity  

    private FirebaseAuth mAuth;
    private TextView email,passwordtxt;
    private FirebaseFirestore mFirestore;
    private String UserId;
    private FirebaseAuth.AuthStateListener mAuthListener;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_account);

        email       = (TextView)findViewById(R.id.email_txt);
        UserId      = mAuth.getCurrentUser().getUid();
        passwordtxt = (TextView)findViewById(R.id.pass_txt);
        mAuth       = FirebaseAuth.getInstance();
        mFirestore  = FirebaseFirestore.getInstance();

        mFirestore.collection("Hospitals")
                  .document(UserId).get()
                  .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() 
            @Override
            public void onSuccess(DocumentSnapshot documentSnapshot) 
                String user_name = documentSnapshot.getString("email");
                String password  = documentSnapshot.getString("password");

                email.setText(user_name);
                passwordtxt.setText(password);
            
        );
    

【问题讨论】:

@SantanuSur 它不属于你,因为你可以复制...... mAuth 为空 @GowthamanM 它显然是重复的! @SantanuSur 是的,我知道..但是你可以复制不是 android 相关的标签。 如果没有添加适当的标签,问题应该用那个标签编辑,然后应该这样标记!! @GowthamanM 【参考方案1】:

将您的 onCreate 方法代码更改为:

protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my_account);

    email = (TextView)findViewById(R.id.email_txt);
    mAuth = FirebaseAuth.getInstance();
    UserId = mAuth.getCurrentUser().getUid();
    passwordtxt = (TextView)findViewById(R.id.pass_txt);

    mFirestore = FirebaseFirestore.getInstance();
   mFirestore.collection("Hospitals").document(UserId).get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() 
        @Override
        public void onSuccess(DocumentSnapshot documentSnapshot) 
            String user_name = documentSnapshot.getString("email");
            String password  = documentSnapshot.getString("password");


            email.setText(user_name);
            passwordtxt.setText(password);
        
    );    

【讨论】:

兄弟,我找不到你的代码和我的代码有什么区别 只需将其复制并粘贴到您的代码中,您就会发现它...如您所见 mAuth = FirebaseAuth.getInstance();使用前必须先初始化... @SharmaBlog 您需要获取第一个实例 mAuth = FirebaseAuth.getInstance() 然后获取用户 ID UserId = mAuth.getCurrentUser().getUid(); 仔细检查.. 谢谢,兄弟,它正在工作 @SharmaBlog 欢迎...快乐编码.. :) 赞成票将被 appiricated..

以上是关于我想从firestore检索当前记录的用户数据,但这显示错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章

根据 url 从 firestore 检索数据

如何在 UIPickerView 中加载从 Firestore 检索到的数据?

Vue:检索 Firestore 数据以显示用户的企业名称 v-for 循环

如何在firestore中检索当前auth用户的所有字段? - 科特林

需要帮助从 Firestore 中检索数据值

如何从 Cloud Firestore 中获取数据,其中 user.uid 等于 Flutter 中的文档 ID?