我正在Android Studio上制作应用程序 使用Firebase,我在更新数据时遇到问题。
我正在尝试通过搜索另一个具有确定值的孩子来更新一个孩子。
这是我的结构,我想将dailyRank
更新为2,其中dailyTotalDis
为5.8。
这是我写的一些代码。
FirebaseDatabase database = FirebaseDatabase.getInstance();
ref = database.getReference("RECORD");
String check = "dailyData/1557360000000/";
ref.child(check).child("dailyTotalDis").equalTo("5.8").setValue("1");
我确定我的代码有问题,但是我不知道该如何处理。
谢谢!
答案 0 :(得分:2)
如果您要基于dailyRank
值更新dailyTotalDis
,请尝试以下操作:
FirebaseDatabase database = FirebaseDatabase.getInstance();
ref = database.getReference("RECORD");
String check = "CTJZNO5pU2RzlAQa7ol5OlQoTmU2/dailyData/1557360000000/";
ref.child(check).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Integer value = dataSnapshot.child("dailyTotalDis").getValue(Integer.class);
if(value.equalsTo(5.8))
ref.child(check).child("dailyRank").setValue("1");
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
首先,获取对您节点的引用,然后检索dailyTotalDis
的值,并在满足条件的情况下更新dailyRank
。