未在Android

时间:2018-03-30 18:34:55

标签: java android firebase firebase-realtime-database

Here is the following structure of database in firebase

代码

我正在获取当前用户,然后检查id是否为null并获取子项的引用并获取子项的密钥。我还在字符串变量中获取null,我试图获取值。

private void Check_data() {
    final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    if (user.getUid() != null) {
        FirebaseDatabase database = FirebaseDatabase.getInstance();
        DatabaseReference myRef = database.getReference("user_info");
        DatabaseReference myRef1=myRef.child(user.getUid());
        myRef1.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                //GenericTypeIndicator<Map<String, String>> genericTypeIndicator = new GenericTypeIndicator<Map<String, String>>() {};
                   // Map<String, String> map = dataSnapshot.getValue(genericTypeIndicator);
                    String name = dataSnapshot.child("name").getValue(String.class);
                    String email = dataSnapshot.child("email").getValue(String.class);


                        Name.setText(name);
                        email_txt.setText(email);


               /* if (image != null) {
                    Glide.with(MainActivity.this)
                            .load(image)
                            .centerCrop()
                            .into(photo_url);

                }*/

                }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

    }
}

1 个答案:

答案 0 :(得分:0)

在您的数据库中,您拥有使用push()

生成的随机ID

首先,在向数据库添加数据时,请使用userid

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

userid对每个用户都是唯一的。

然后检索userid中的数据:

 DatabaseReference myRef = database.getReference("user_info");
 DatabaseReference myRef1=myRef.child(userid);
 myRef1.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
                String name = dataSnapshot.child("name").getValue(String.class);
                String email = dataSnapshot.child("email").getValue(String.class)
  }
});

如果ID在开头有-,则表示其为随机ID。