如何在不获取密钥的情况下检索Firebase子数据?

时间:2019-04-03 18:34:03

标签: javascript firebase firebase-realtime-database

我目前正在尝试获取数组中没有键的子数据,以便将其添加到我的redux状态。

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 :(得分:0)

对Firebase数据库执行查询时,可能会有多个结果。因此,快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。

您需要遍历结果,以获取各个值:

ref.orderByChild('userId').equalTo(googleUserInfo[0].userId).once('value', streamSnapshot => {
    streamSnapshot.forEach((child) => {
      googleUserInfo[0] = (child.val())
    });