Я создаю приложение, которое в основном представляет собой таблицу для футбола, которая обновляется каждый раз, когда я меняю ее в своей БД.Получение соответствующего ключа от ValueEventListener
Я использую Firebase таким образом:
Я пытаюсь использовать addValueEventListener
, но я не знаю, какой один из значений является тот, который изменяет (МПИ, оценка, баллы ...), поэтому я не занимаюсь этим полем в своей таблице, которую я должен обновить.
public class table extends AppCompatActivity {
Button insert;
TextView name, games, win, lost, tie, score, dif, points;
Team A;
DatabaseReference mRootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference FootballRef = mRootRef.child("Football");
DatabaseReference HouseARef = FootballRef.child("HouseA");
protected void onStart() {
super.onStart();
ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Get Post object and use the values to update the UI
String key = dataSnapshot.getKey() ;
Toast.makeText(table.this,key, Toast.LENGTH_SHORT).show();
// ...
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
// ...
}
};
HouseARef.addValueEventListener(postListener);
}
}
Смотрите здесь, когда, скажем, я обновляю имя housaA
, я хочу, чтобы вернуть ключ, который был обновлен (в моем случае, name
), но когда я использую dataSnapshot.getKey()
тоста Я возвращаюсь HouseA
и не name
.
Вы включили изображение дерева JSON в вашем вопрос. Пожалуйста, замените это на фактический JSON как текст, который вы легко можете получить, нажав кнопку «Экспорт» в консоли базы данных Firebase. Наличие JSON в качестве текста делает его доступным для поиска, позволяет нам легко использовать его для тестирования с вашими фактическими данными и использовать его в нашем ответе, и в целом это просто хорошая вещь. –