【发布时间】:2018-03-04 22:46:05
【问题描述】:
我的 Android 应用上有一个按钮,按下该按钮时应更新 Firebase 数据库中的分数;
// UPDATE DATABASE START
final String getArgument = getArguments().getString("matchid");
DatabaseReference database = FirebaseDatabase.getInstance().getReference();
final DatabaseReference ref = database.child("Matches");
final Query gameQuery = ref.orderByChild("gameID").equalTo(getArgument);
gameQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
if(snapshot.exists()){
for (DataSnapshot child: snapshot.getChildren()) {
ref.child(getArgument).child("homeScore").setValue(5);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
//UPDATE DATABASE END
当我执行代码时,我会在数据库中获得一条新记录,而不是更新现有的字段数据。我通过 Firebase 控制台手动启动了数据库,而不是以编程方式更新记录,因此我使用我在数据库中创建的游戏 ID 作为我的 PK。 我已经将要更新的值硬编码为 5 以使其首先工作。
Firebase 中的数据结构是;
-Matches
- Match_01
-matchID
-homeScore
-etc....
感谢所有帮助。
【问题讨论】:
标签: java android firebase firebase-realtime-database