火力地堡数据库中的数据检索-Java

问题描述:

这里是我的数据库结构:火力地堡数据库中的数据检索-Java

user="hrcj7"; 
mDatabase = FirebaseDatabase.getInstance().getReference().child("User"); 
             Query phoneQuery = mDatabase.orderByChild(user); 
             phoneQuery.addChildEventListener(new ChildEventListener() { 
              @Override 
              public void onChildAdded(DataSnapshot dataSnapshot, String prevChildKey) { 
               User dinosaur = dataSnapshot.getValue(User.class); 
               System.out.println(dataSnapshot.getKey() + " was " + dinosaur.getEmail() + " meters tall."); 
              } 

              @Override 
              public void onChildChanged(DataSnapshot dataSnapshot, String s) { 

              } 

              @Override 
              public void onChildRemoved(DataSnapshot dataSnapshot) { 

              } 

              @Override 
              public void onChildMoved(DataSnapshot dataSnapshot, String s) { 

              } 


              @Override 
              public void onCancelled(DatabaseError databaseError) { 
               Log.e("App", "onCancelled", databaseError.toException()); 
              } 
             }); 

这是dataSnapsshot值取回后:

我用于数据读取

enter image description here

代码

DataSnapshot { 
    key = hrcj7, 
    value = { 
     -Kh2-jOeGXCOr-VE3uD5={ 
      username=hrcj7, 
      [email protected], 
      imageurl=https://firebasestorage.googleapis.com/v0/b/freelancer-33195.appspot.com/o/Blog_Images%2Fcropped933315999.jpg?alt=media&token=7890f05f-87db-4a9d-9534-02da00225470 
     } 
    } 
} 

这是模型类:

public class User { 


      public String email; 
      public String imageurl; 
      public String username; 

      public User(String email,String imageurl,String username) { 

       this.email = email; 
       this.imageurl=imageurl; 
       this.username=username; 
      } 

      public String getEmail() { 
       return email; 
      } 

      public void setEmail(String email) { 
       this.email = email; 
      } 

      public String getImageurl() { 
       return imageurl; 
      } 

      public void setImageurl(String imageurl) { 
       this.imageurl = imageurl; 
      } 

      public String getUsername() { 
       return username; 
      } 

      public void setUsername(String username) { 
       this.username = username; 
      } 
    public User() { 
      // Default constructor required for calls to DataSnapshot.getValue(User.class) 
     } 

     } 

我的问题是dinosaur.getEmail()检索值后得到空值。可能是什么问题?提前致谢。

+0

为什么恐龙 “的电子邮件米高的”? –

+0

我得到了空值为dinosaur.getEmail() – HRCJ

+2

在'mDatabase.orderByChild(用户);'我们无法知道'mDatabase'和'用户'是什么。请确保代码足够完整,以重现问题,因为这两者非常重要。它有助于:1)尽可能使用硬编码值,2)从FirebaseDatabase.getInstance()开始。 –

在这里我找到了解决方案。

在行:

User dinosaur = dataSnapshot.getValue(User.class); 

应更换如下:

String key = mDatabase.child("User").child(user).push().getKey(); 
User dinosaur = dataSnapshot.child(key).getValue(User.class);