我的数据目前的结构如下:
Users •
userId -
eyeColour: Blue
userId •
- geoLocation stuff
我正在尝试加载与地理位置节点关联的数据。因此,如果用户A设置位置并且用户B接近用户A的设置位置,则他/她可以看到用户A(eyeColour)的属性。所以onKeyEntered(),我正在尝试加载用户的信息。
每个用户都有自己唯一的ID。当用户设置位置时,子名称将是其唯一ID。 (geofire.setLocation(myUniqueId,myLocation);)
所以我之前尝试过的是使用addListenerForSingleValueEvent,因为我只需要加载一次信息。
mDatabase.child("users").child(key).addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Get user value
String test = dataSnapshot.getValue(String.class);
// ...
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我认为这会加载用户的个人资料/信息。但相反,String'test'返回null。我究竟做错了什么?我应该改变我的倾听者吗?