Как я могу обновить определенное значение путем поиска другого дочернего значения? - PullRequest
0 голосов
/ 12 мая 2019

Я создаю приложение в Android Studio с использованием Firebase, и у меня проблема с обновлением данных.

Я пытаюсь обновить ребенка, ища другого ребенка, который имеет определенное значение, которое я дамв качестве параметра.

enter image description here

Это моя структура, и я хочу обновить 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");

Я уверен, что у моего кода есть проблема, но я не знаю, как подходить по-другому.

Спасибо!

1 Ответ

2 голосов
/ 12 мая 2019

Если вы хотите обновить 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, если оно удовлетворяет условию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...