Хобрук: Ваш путь к мастерству в программировании

Какое значение имени в ответе onChildAdded, Firebase?

Я использую базу данных 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: -LMsqXJVyXWZKqDizrCt

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

Моя база данных

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

Добавлен:

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

Ответы:


1

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

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

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

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

public abstract void onChildAdded (DataSnapshot snapshot, String previousChildName)

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

Параметры

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

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

20.09.2018
  • Так почему же в других DataSnapshot я понял, что они оба одинаковы? 21.09.2018
  • Этого не должно быть. Если у вас есть такой случай, покажите его репродукцию. 21.09.2018
  • Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

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

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..