【发布时间】: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