【问题标题】:Can't connect to Firebase Realtime Database NodeJS Server无法连接到 Firebase 实时数据库 NodeJS 服务器
【发布时间】:2017-08-09 04:07:02
【问题描述】:

当我尝试运行以下代码时,控制台中显示以下错误:

节点 mcve.js FIREBASE 警告:设置在 /sitesToVisit/-Kr6oOddLtLUcpUpha7m 失败:permission_denied (节点:12540)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:1):错误:PERMISSION_DENIED:权限被拒绝

var firebase = require("firebase");
var config = {
    apiKey: "apiKey",
    authDomain: "authDomain",
    databaseURL: "databaseURL",
    projectId: "projectId",
    storageBucket: "storageBucket",
    messagingSenderId: "messagingSenderId"
  };
  firebase.initializeApp(config);
    var database = firebase.database();
    var sitesToVisitRef = firebase.database().ref("sitesToVisit");
    var newSiteToVisitRef = sitesToVisitRef.push();
    newSiteToVisitRef.set({
      url: 'url',
      baseUrl: 'urlBase'
    });

更新:我尝试在一个不在公共 NPM 包中的新文件夹中创建一个新文件。当我做了一个简单的事情时,这很有效:

firebase.database().ref('usersecond').set({
    username: "ben",
    email: "hi",
    profile_picture : "imageUrl"
  });

初始化数据库后。但是,当我添加其余代码时,这组代码并没有影响数据库;它没有抛出错误,但数据只是没有出现在数据库中。这可能是因为我使用的是 NPM 请求模块吗?

【问题讨论】:

  • 抱歉,这里的代码太多,而关于实际错误的细节太少。 Stack Overflow 不是一个好的交互式调试器。为了获得最佳帮助,请单独重现您的问题并分享所谓的MCVE
  • @FrankvanPuffelen 好点。这是否更好?谢谢!
  • 您似乎没有写/sitesToVisit/-Kr6oOddLtLUcpUpha7m的权限。如果此代码在受信任的环境(例如您控制的设备/服务器或 Cloud Functions)上运行,我会考虑使用 Firebase Admin SDK:firebase.google.com/docs/admin/setup。这将以管理权限运行。

标签: javascript node.js firebase firebase-realtime-database web-crawler


【解决方案1】:

您似乎没有写入/sitesToVisit/-Kr6oOddLtLUcpUpha7m 的权限。

如果此代码在受信任的环境(例如您控制的设备/服务器或 Cloud Functions)上运行,我会考虑使用 Firebase Admin SDK:https://firebase.google.com/docs/admin/setup。这将使代码以管理权限运行,绕过安全规则。

【讨论】:

  • 这里的数据也没有显示出来。我过去使用过 Firebase 数据库,都来自 Github Pages 和 NodeJS 服务器(我现在正在使用),但由于某种原因它现在无法正常工作。
  • 管理员对我也不起作用。我对问题的编辑是否提供了更多信息?例如,可能是我正在使用 NPM 请求模块,也许这会以某种方式干扰它......?非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 2018-12-09
相关资源
最近更新 更多