繁体   English   中英

获取经过身份验证的用户失败的数据

[英]To get data of authenticated user failure

public void loadUserInformation() {

    final String uid = mAuth.getCurrentUser().getPhoneNumber();
    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference().child("Users");
//        DatabaseReference uidRef = rootRef.child("ref").child(uid);
    ValueEventListener eventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot postSnapshot: dataSnapshot.getChildren()){
                String name=postSnapshot.child("Name").getValue().toString();
//                    String email=postSnapshot.child("Email").getValue().toString();

                Name.setText(name);

//                    Email.setText(email);
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Toast.makeText(getActivity(),"Error Loading UserDetails",Toast.LENGTH_LONG).show();
        }
    };
    rootRef.addListenerForSingleValueEvent(eventListener);
}

我知道为什么我没有得到预期的结果,因为在用户之后还有一个孩子。 我不确定如何访问它,child(uid)给了我NullPointerException 目前的代码给了我一些随机用户的名字。 我希望它返回经过身份验证的用户的名称,即我自己

数据库-http://ibb.co/iRnF77

将电话号码更改为用户标识:

FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
String userid=user.getUid();

因此,您将拥有以下数据库:

Users
  userid
    Name: namehere
    Phone_Number: numberhere
    //etc

那么您可以简单地检索当前用户的数据:

 DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference().child("Users").child(userid);

ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
            String name=dataSnapshot.child("Name").getValue().toString();                     


            Name.setText(name);

        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
};

您无需将电话号码作为父节点,因为您已经将其作为属性Phone_Number: number_here ,因此无需Phone_Number: number_here编写两次。

如果您进行了电话身份验证,也可以使用getPhoneNumber()

https://firebase.google.com/docs/auth/android/phone-auth

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM