база данных firebase как узнать есть ли родитель? - PullRequest
0 голосов
/ 18 ноября 2018

У меня следующий сценарий:

У одного пользователя может быть несколько фотографий, другие пользователи могут сообщить о каждой фотографии за нарушение срока действия приложения

Так что я делаю что-то вроде:

FirebaseDatabase.getInstance().getReference().child("reports").child(ownerId).child(g.getMediaId()).addListenerForSingleValueEvent(new ValueEventListener() {
...
...
 public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
 if (!dataSnapshot.exists()) { //do stuff 
 }
}

Суть dataSnapshot.exists() возвращает, если вся ветвь существует ... она может не существовать, потому что mediaID является новым (первый отчет этой фотографии) или потому что вся ветвь ownerId является новой (первый отчет о любое фото этого пользователя)

как я могу узнать, существует ли родитель?

1 Ответ

0 голосов
/ 18 ноября 2018

Просто подытожу, что я понимаю:

  • У вас есть дерево JSON /reports/$ownerid/$mediaid.
  • Вы присоединяете слушателя к определенному /reports/ownerid/mediaid.
  • Вы хотите проверить, существует ли ownerid.

Слушатель получает все данные ниже уровня, к которому вы его подключаете, но не получает данных с уровней выше того уровня, к которому он прикреплен.Таким образом, единственный способ определить, существует ли /reports/ownerid, - это подключить слушателя на этом уровне.

Обратите внимание, что тогда будут загружены все данные в соответствии с этим /reports/ownerid, что может быть больше, чем вам нужно.Если это так, рассмотрите возможность ведения отдельного списка known_owners, в котором вы будете отслеживать, для каких владельцев у вас есть данные.

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