簡體   English   中英

沒有從Android中的Firebase獲取子數據

[英]Not getting Child Data back from Firebase in android

這是firebase中數據庫的以下結構

我正在獲取當前用戶,然后檢查id是否為null並獲取child的引用並獲取child的鍵。 此外,我在嘗試獲取值的字符串變量中獲取了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) {

            }
        });

    }
}

在數據庫中,您具有使用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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM