javascript - 在 Javascript 中读取 Firebase 数据库时获取空快照?

标签 javascript firebase-realtime-database firebase-cloud-messaging google-cloud-functions

我有以下数据库结构:

enter image description here

我正在尝试获取 registrationTokens 下的值列表,然后对 token 列表执行 FCM 通知。但是即使子节点下有 token ,控制台的输出也是空的。我在这里遗漏了什么吗?

控制台输出:

registrationTokens [ '0' ]

下面是我的部分 JS 函数代码:

return admin.database().ref('/fcmtokens/' + toId + '/registrationTokens').once('value').then((userTok) => {

    const registrationTokens = Object.keys(userTok.val());

    console.log('registrationTokens', registrationTokens);
});

最佳答案

您的控制台输出完全符合我的预期。您已经从数据库中读取了以下 child :

0: 'c4P...'

然后您要求打印该对象的键,由 Object.keys() 返回.请注意,此键是一个键/值对:键为 0,值为“c4P...”。这意味着以下调用:

Object.keys(userTok.val());

将返回子项的键数组。因为有一个 child 的键为 0,所以你得到这个数组:

[ '0' ]

所以,我想说您的函数完全按照您编写的代码运行。如果你想要 token 值,试试这个:

如果你想为每个键标记,也许你应该使用 Object.values()相反:

Object.values(userTok.val());

我希望它返回一个数组,其中包含与它们的键关联的所有值。

关于javascript - 在 Javascript 中读取 Firebase 数据库时获取空快照?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53646108/

相关文章:

ios - 将 CLLocationCoordinate2D(s) 的字符串转换为数组

firebase - Firestore 社交媒体模型结构

ios - Firestore 消息 : Sending message to Topic with Swift

flutter - 考虑到firebase用户是否在线处理firebase通知

ios - 突然无法连接到我的 Firebase 数据库

javascript - 如何使用 orderByChild equalTo 检索子节点的完整路径?

javascript - 如何在 socket.io 服务器中调用 Node api 响应

javascript - 如何使用 javascript 进行开/关切换?

javascript - 向下滚动时自动加载内容

javascript - whatsapp://send?text= 不起作用