Каково значение имени в ответе на ChildAdded, Firebase? - PullRequest
0 голосов
/ 21 сентября 2018

Я использую базу данных Firebase в своем проекте.Я сумасшедший перепутал с onChildAdded.У меня есть код, подобный следующему:

mEventListener = new ChildEventListener() {
              @Override public void onChildAdded(@NonNull DataSnapshot dataSnapshot,
                @Nullable String stringS) {
   if (stringS != null
       && dataSnapshot.getKey()
      != null && !dataSnapshot.getKey().contains(stringS)) 
    {
     Log.e("=====", "onChildAdded: " + stringS +
           " getKey: " + dataSnapshot.getKey());
    }....
  • И я получил журналы здесь:

=====: onChildAdded: -LMsqXJTn5DoMZTELzuz getKey: -LMsqXJVyXWZtqRC

  • Так в чем же ключ этого "dataSnapshot" ???

My firebase

  • В других случаях я также получил некоторые противоположные результаты, поэтому меня это сильно смущает.

Добавлено:

  • Некоторые другие DataSnapshot, оба они одинаковы.

1 Ответ

0 голосов
/ 21 сентября 2018

onChildAdded получает два аргумента:

  • DataSnapshot, который был только что добавлен
  • Ключ предыдущего дочернего элемента, после которого этот новыйбыл добавлен моментальный снимок данных

Итак, в вашем образце новый снимок имеет ключ -LMsqXJVyXWZKqDizrCt, и он был добавлен после -LMsqXJTn5DoMZTELzuz.

Также см. справочную документацию дляonChildAdded:

public abstract void onChildAdded (DataSnapshot snapshot, String previousChildName)

Этот метод срабатывает при добавлении нового дочернего объекта в местоположение, в которое был добавлен этот слушатель.

Параметры

snapshot - неизменный снимок данных в новом дочернем расположении

previousChildName - имя ключа местоположения родного брата, заказанного перед новым дочерним объектом.Это будет нулевым для первого дочернего узла местоположения.

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