Has*_*azi 9 android firebase firebase-realtime-database
我想从firebase数据库中读取特定数据.我目前正在做的是这里.
DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference myRef = database.child("profiles/");
myRef.child(phoneNo).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
user = dataSnapshot.getValue(User.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
Run Code Online (Sandbox Code Playgroud)
写入DB的方法
public void writeToDBProfiles(Object data,String phoneNo) {
DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference myRef = database.child("profiles/" + phoneNo);
myRef.setValue(data);
}
Run Code Online (Sandbox Code Playgroud)
但它返回null ...任何帮助将不胜感激.
Ind*_*ile 14
如果您想使用电话号码获取特定数据,那么您可以使用这样的查询
DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference ref = database.child("profiles");
Query phoneQuery = ref.orderByChild(phoneNo).equalTo("+923336091371");
phoneQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot singleSnapshot : dataSnapshot.getChildren()){
user = singleSnapshot.getValue(User.class);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e(TAG, "onCancelled", databaseError.toException());
}
});
Run Code Online (Sandbox Code Playgroud)
我认为这是最好的方法.
好的,我已经解决了。问题中的上述代码非常好并且应该可以工作。我正在向后来的用户解释,因为我犯的错误可能会遇到同样的问题。
singleSnapshot.getValue(User.class); 无法将结果转换为用户类,因为在上传数据时,即在 setValue 中,我的 photoUrl 等于 null,因此您可以看到 photoUrl 不存在于我的子节点中。所以我相信(也许有人想纠正我)我的 singleSnapshot.getValue 方法无法转换结果。
因此,目前我已从 User 类中省略了 photoUrl,当我开始使用相关模块时,我将再次使用它。
再次感谢大家的所有建议和帮助。
public class User {
String name;
Uri photoURL;
String bloodGroup;
String city;
String country;
double latitude;
double longitude;
boolean availableToDonate;
// Get, set and constructors are obvious here I am just saving some space in the post
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41702 次 |
| 最近记录: |