Intereting Posts
Откройте диалог, когда я нажму кнопку Управление WebView с фокусом блокирует события медиа-кнопок в Android 5 Как совместно использовать изображение + текст, используя ACTION_SEND в android? Частный просмотр устарел в Android WebView по API 17. Какая альтернатива? Каталог для хранения аудиофайлов в Android Использование контекстной панели действий с фрагментами Ошибка android.content.res.Resources $ NotFoundException: Файл из ресурса макета типа xml ID # 0x102000a Печать на принтер AirPrint с Android Как определить длинный прослушиватель при просмотре изображения? Как удалить модуль в Android Studio Как поток, созданный приложением, можно рассматривать как другое приложение из ContentProvider приложения? Выравнивание в Html.fromHtml () Как я могу использовать распознавание речи без раздражающего диалога на телефонах Android Действительно ли React действительно поддерживает Android-фрагменты? Как перейти из Галереи в HorizontalScrollView & ViewPager?

Google firebase проверяет, существует ли ребенок

Я пытаюсь создать приложение на Android. Мне нужно проверить, имеет ли данный элемент моей базы данных в firebase дочерний элемент с заданным именем. Я надеялся, что это можно сделать, используя что-то вроде:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); if (rootRef.childExists("name")) { //run some code } 

Я искал, но я не нашел ничего полезного. Спасибо за любую помощь заранее.

Solutions Collecting From Web of "Google firebase проверяет, существует ли ребенок"

Редактировать 2; Стоит упомянуть : я думаю, стоит упомянуть, что на самом деле это загрузка всех данных в этот моментальный снимок, чтобы проверить, существуют ли какие-либо данные. Вы должны помнить здесь. Если ссылка огромна (например, на самом деле корневая ссылка, а не конкретный дочерний элемент / свойство), то вы должны либо найти более глубокий узел, который вы можете использовать для проверки существования, либо дизайн вашей структуры данных по-разному, поэтому эффективная проверка возможна.

Ссылка на базу данных фактически является URL-адресом для этих данных. Вы хотите получить данные, чтобы узнать, существует ли ребенок. Вот почему метод, который вы, похоже, ищете, – это DataSnapshot .

 DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); rootRef.addListenerForSingleValueEvent(new ValueEventListener() { @Override void onDataChange(DataSnapshot snapshot) { if (snapshot.hasChild("name")) { // run some code } } }); 

Теперь этот дизайн выглядит немного странным. Вы читаете всю базу данных, чтобы узнать, существует ли «имя». Вы можете сделать это немного более эффективным, слушая rootRef.child("name") а затем просто проверяя, является ли snapshot.exists() .

Если вы пытаетесь сделать валидацию здесь, а не управляете потоком, вы должны рассмотреть возможность размещения этого кода в своих rules.json .

Edit : Я изначально использовал неправильное имя функции (childExists вместо hasChild)

Попробуйте использовать .childexists в сочетании с .equalTo("Your specific name")