Итерация по базе данных Firebase - PullRequest
0 голосов
/ 22 января 2019

То, что я пытаюсь сделать, - это просмотреть базу данных Firebase и посмотреть, есть ли определенное значение, если есть, то ничего не делать, если нет, то добавить другое значение для узла.

Моя коллекция Firebase выглядит следующим образом:

appname{
Collection{
    key : value
    key : value
    key : value

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

РЕДАКТИРОВАТЬ: мне сказали показать код, который я использовал, который не работал.Я удалил код, так как я пробовал разные вещи.Но я постараюсь вспомнить, как это было.Здесь:

reference.child("strings").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
    for(DataSnapshot n : dataSnapshot.getChildren()){
        if (n == inputedString) {
            break;
        }
    ref.child("strings").setValue(inputedString);
    }
}

Опять же, я не уверен, что это точный код, но он похож на него.Я использовал этот ответ в качестве справки, но не смог настроить его под свои нужды: Firebase / Android, как получить дочерние ключи и значения?

Также проблема, которую я получил, заключается в том, что мойбаза данных заполнялась бесконечно снова и снова.

1 Ответ

0 голосов
/ 22 января 2019

Ваш код эффективно прослушивает изменения, которые он также вносит. Каждый вызов setValue будет вызывать другой обратный вызов объекта, который вы передали addValueEventListener. Если вы хотите повторить каждый дочерний процесс только один раз и не слушать обновления, используйте addListenerForSingleValueEvent вместо addValueEventListener.

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