如何获得在火力
所有的孩子一样,增加值数据库火力点后:如何获得在火力
writeNewUser("0",name , "0", "1");
writeNewUser("1",name , "0", "2");
writeNewUser("2",name , "0", "3");
writeNewUser("3",name , "0", "4");
private void writeNewUser(String GameID, String name, String wpm , String userID) {
User user = new User(name, wpm , userID);
mDatabase.child("games").child(GameID).setValue(user);
}
@IgnoreExtraProperties
public class User {
public String name;
public String wpm;
public String userID;
public User() {
// Default constructor required for calls to DataSnapshot.getValue(User.class)
}
public User(String name, String wpm , String userID) {
this.name = name;
this.wpm = wpm;
this.userID = userID;
}
}
而且例如它看起来像在火力点: 游戏> 0>名称:,WPM:,ID : 游戏> 1>名称:,WPM:,ID:
我想收到的是从数据库中的游戏ID的由低到高
我很高兴能得到一些帮助,因为我整理对这个数据库不熟悉,并且一直在寻找几个小时伊迪。
下面是根据密钥(GameID)排列的数据库中所有游戏的代码,假设您不需要实时更新。
final HashMap<Long,User> userMap = new HashMap<>();
FirebaseDatabase.getInstance().getReference("games").orderByKey().addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterable<DataSnapshot> snapshotIterable = dataSnapshot.getChildren();
for (DataSnapshot aSnapshotIterable : snapshotIterable) {
userMap.put(Long.parseLong(aSnapshotIterable.getKey()),aSnapshotIterable.getValue(User.class));
}
Set<Long> gameIds = userMap.keySet();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
谢谢,我可以在哪里阅读有关实时更新并查看它们之间的区别? – user124532053452
您可以在这里阅读有关的差异.https://firebase.google.com/docs/database/android/read-and-write#listen_for_value_events –
如果这就是您的意思,您将无法获得确切的更改“区别”。如果能够帮助我更好地理解用例,我将能够更好地为您提供帮助。 –
你可以发布你的数据获取代码吗? –
@MohammadAldefrawy我正在尝试使用getChildren(),但我无法理解这是如何工作的,以及我应该使用哪个var – user124532053452
你刚刚想要一次数据,还是希望实时更新数据库,即更新每次“游戏”数据库被修改? –