Как работает моментальный снимок документа

#android #kotlin #firebase-realtime-database

# #Android #kotlin #firebase-база данных в реальном времени

Вопрос:

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

вопрос.png

На изображении мы видим, что электронное письмо находится после uuid.

Теперь я добавил следующий код:]

 FirebaseDatabase.getInstance().getReference().child("users").addChildEventListener(object :ChildEventListener{
            override fun onChildAdded(snapshot: DataSnapshot, previousChildName: String?) {
                val email= snapshot.child("email").value as String
                emails.add(email)
                adapter.notifyDataSetChanged()
            }
 

Если мы хотим получить электронное письмо, мы должны следовать по этому пути: user->uuid->email (здесь uuid — строка случайных букв и цифр)

но в коде мы использовали FirebaseDatabase.getInstance().getReference().child("users") , а затем использовали snapshot.child("email") , который используется для получения email .

Мой вопрос в том, почему мы следовали path users->email . Мы нигде не упоминали о переходе к uuid?

Как будет размещаться база email данных, если мы не указали, что uuid она должна найти?

Комментарии:

1. Я не уверен, что понимаю, в чем проблема. Какая часть кода, которым вы поделились, работает не так, как вы ожидаете / намереваетесь, чтобы он работал?

2. Мой код работает. У меня были сомнения, поэтому я спросил

3. В этом случае я не уверен, что понимаю, о чем вы спрашиваете. Можете ли вы перефразировать это?

4. Я отредактировал вопрос. Код работает нормально, я не понимаю, как он работает

Ответ №1:

Когда вы подключаете прослушиватель с addChildEventListener помощью к местоположению, его onChildAdded метод вызывается каждым дочерним элементом в этом местоположении. Таким образом, Firebase SDK вызывает ваш onChildAdded для UID /users .