Проверьте, существуют ли данные в БД Firebase в Android - PullRequest
0 голосов
/ 23 июня 2018
{
  "users": {
    "-KKUmYgLYREWCnWeHCvO": {
      "fName": "Peter",
      "ID": "U1EL9SSUQ",
      "username": "peter01"
    },
    "-BBUmYgLYREWCnWPDndk": {
      "fName": "John",
      "ID": "U1EL5623",
      "username": "john.doe"
    }
  }
}

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

 "fName": "Peter",
      "ID": "U1EL9SSUQ",
      "username": "peter01"

Так как проверить, все ли три поля с уникальным родительским идентификатором уже существуют?

 mDatabaseUsers.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot data: dataSnapshot.getChildren()){
            if (data.child("fName").exists() && data.child("ID").exists() &&
                    data.child("username").exists()) {
                //do ur stuff


            } else {
                //do something



            }
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }


});

Я попробовал приведенный выше код, и он не работал

1 Ответ

0 голосов
/ 23 июня 2018

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

{
  "users": {
    "U1EL9SSUQ_Peter_peter01": {
      "fName": "Peter",
      "ID": "U1EL9SSUQ",
      "username": "peter01"
    },
    "U1EL5623_John_john,doe": {
      "fName": "John",
      "ID": "U1EL5623",
      "username": "john.doe"
    }
  }
}

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

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

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