【发布时间】:2017-06-29 23:58:14
【问题描述】:
我正在从 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());
}
});
用户类包含 getter 和 setter。
错误是只有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);
【问题讨论】:
标签: android firebase firebase-realtime-database