【问题标题】:Firebase-admin fails silently to write to realtime database from nodejsFirebase-admin 无法从 nodejs 静默写入实时数据库
【发布时间】:2018-06-22 14:59:17
【问题描述】:

我正在尝试在我的 Raspberry Pi 上运行的 nodejs 应用程序上使用 Firebase Admin 进行设置。

当我打电话时;

admin.database().ref().child("myPath").push({date: new Date()});

我没有收到任何错误,但在 Firebase 控制台中查看我的数据库时也没有显示任何数据。

我也尝试过链接;

set({date: new Date()});

push().set({date: new Date()});

两者都没有错误地写入失败。

我已验证我的 rtdb url 和服务帐户文件中的项目 ID 对于我的数据库是正确的。我已经尝试过require在文档中输入文件并将凭证对象直接传递给;

admin.credential.cert()

我只提到我在 Raspberry Pi 上运行,因为我看到的问题听起来与 this Stack Overflow post 非常相似,其中 Firebase 管理员不会写入 db。我想知道这不是巧合。

有什么我可能缺少的想法吗?

【问题讨论】:

  • 您是否先使用 Firebase CLI 登录? firebase.google.com/docs/cli
  • 我没有。在我链接到的文档中没有看到它。让我试试看。
  • 好的,我使用 Firebase CLI 登录,将我的节点项目目录与我的 firebase 项目相关联,运行 firebase init 并选择数据库选项。收到“Firebase 初始化完成!”消息但仍然没有使用 admin.database().ref().child("myPath").push().set({date: new Date()}); 写入数据库
  • 它确实在项目的 Firebase 控制台的使用选项卡下显示了昨天和今天的连接。
  • 抱歉,不确定问题出在哪里,但我确实发现 Firebase 示例代码的这个 repo 很有帮助 github.com/firebase/functions-samples

标签: node.js firebase-realtime-database raspberry-pi raspberry-pi3 firebase-admin


【解决方案1】:

请你试试这个代码.....push().set({'date': new Date()});。谢谢。我猜它需要一个字符串作为键,如果我没记错的话,即使是 new Date().toStirng() 也会很好。

谢谢,

【讨论】:

  • 不需要将属性名称设为字符串,但在 new Date() 上调用 .toString() 就可以了。
  • 谢谢布拉德,很高兴它对你有用。无论如何,我只记得我需要传递字符串,这正是我的建议。谢谢
猜你喜欢
  • 2021-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-05
相关资源
最近更新 更多