我正在读取firebase数据库中的数据。以下是存储在数据库中的数据的快照。从Firebase数据库读取数据失败
在开始与卡串“8SS ......”是用户的UID。以下是从Firebase数据库检索数据的代码。
//To check if uid of current user and database user matches.
Query q = FirebaseDatabase.getInstance().getReference().child("Location").child(user.getUid()).equalTo(FirebaseAuth.getInstance().getCurrentUser().getUid());
q.addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot singleSnapshot : dataSnapshot.getChildren()){
Log.d(TAG, "Yay!!");
User us = singleSnapshot.getValue(User.class);
String string = "Name: "+ us.getName()+"\nAddress: "+ us.getlat()+ us.getlon()+ "\n\n";
n.setText(string);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
// read query is cancelled.
Log.d(TAG, "loadPost:onCancelled", databaseError.toException());
}
});
用户类别包含获取者和设置者。
错误是,只有empty Text View appears
结束reading from database fails
。
- 如何评估是否
query is true or false?
- 而从ValueEventListener阅读()什么是错误?
我尝试使用这样的:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Location").child("8SS0uk4FmiPUtXP208Tx8Cqxt2z2");
然后调用ref.addListenerForSingleValueEvent()
,但仍然没有得到显示。
我尝试使用这样的:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Location").child(user.getUid());
这给dataSnapShot : "DataSnapshot={key='-Kn...', value="latitude:.., longitude:..., Name:..."}
。但这不是我期望的。
数据库结构应该是Location --> Uid --> Name : "Jane", ..
。
这是我在数据库中插入数据的代码。
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser() ;
refDatabase = FirebaseDatabase.getInstance().getReference().child("Location").child(user.getUid());
DatabaseReference newPost = refDatabase.push();
//the push() command is already creating unique key
Map<String, String> mapname = new HashMap<String, String>();
mapname.put("Name", n.getText().toString());
mapname.put("latitude", Double.toString(lat));
mapname.put("longitude", Double.toString(longt));
mapname.put("user id", user.getUid());
newPost.setValue(mapname);
不,我在firebase认证中使用uid进行了交叉检查“8SSOuk ....”是用户的uid,“-Knp ...”是将数据推送到数据库时生成的id。 – SupposeXYZ