Как получить дочерние данные firebase без извлечения ключа? - PullRequest
0 голосов
/ 03 апреля 2019

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

ref.orderByChild(`userId`).equalTo(googleUserInfo[0].userId).once('value', streamSnapshot => {
        if (streamSnapshot.exists()) {
          googleUserInfo[0] = (streamSnapshot.val())
        }

В настоящее время это возвращает

[{…}]0: {-LbJneodI2SaUglB6fwx: {…}}length: 1__proto__: Array(0)

Но я хотел бы это

[{…}]
0:
{
displayName: "Seth Jones"
userAvi: "https://lh6.googleusercontent.com/-RABcz3kK1ew/AAAAAAAAAAI/AAAAAAAAAAA/ACHi3rfzHCLV9A7LfiGWKtTOuq5rJmtQpg/s96-c/photo.jpg"
userEmail: "xxxx@gmail.com"
userFirstName: "Seth"
userId: "103977654052015523435"
userLastName: "Jones"
}

1 Ответ

0 голосов
/ 03 апреля 2019

Когда вы выполняете запрос к базе данных Firebase, потенциально может быть несколько результатов. Таким образом, снимок содержит список этих результатов. Даже если есть только один результат, снимок будет содержать список из одного результата.

Вам нужно перебрать результаты, чтобы добраться до отдельных значений:

ref.orderByChild('userId').equalTo(googleUserInfo[0].userId).once('value', streamSnapshot => {
    streamSnapshot.forEach((child) => {
      googleUserInfo[0] = (child.val())
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...