#android #kotlin #firebase-realtime-database
# #Android #kotlin #firebase-база данных в реальном времени
Вопрос:
Я работаю над приложением, в котором мы можем загружать изображения в базу данных firebase в режиме реального времени.
На изображении мы видим, что электронное письмо находится после 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
.