我是JavaScript,Web开发和Firebase的新手。我正在尝试使用简单的脚本来学习它。
我写了以下脚本:
console.log("Starting")
var firebase = require("firebase/app");
// Add the Firebase products that you want to use
require("firebase/auth");
require("firebase/firestore");
require('firebase/database');
console.log("Firebase was imported")
var firebaseConfig = {
apiKey: ...,
authDomain: ...,
databaseURL: ...,
projectId: ...,
storageBucket: ...,
messagingSenderId: ...,
appId: ...
};
// Initialize Firebase
console.log("Firebase initializition")
firebase.initializeApp(firebaseConfig);
console.log("connect to db")
var database = firebase.database();
function writeApartmentData(apartmentId, street_, number_, floor_, door_) {
firebase.database().ref('apartments/' + apartmentId).set({
street: street_,
number: number_,
floor: floor_,
door: door_
});
}
console.log("write apartment data")
writeApartmentData(1, "calle amalia", 18, 3, "B")
console.log("End");
我得到以下信息:
luca@luca-VirtualBox:~/PisoReview$ node index.js
Starting
Firebase was imported
Firebase initializition
connect to db
write apartment data
End
[2019-06-16T17:52:19.193Z] @firebase/database: FIREBASE WARNING: set at /apartments/1 failed: permission_denied
(node:10870) UnhandledPromiseRejectionWarning: Error: PERMISSION_DENIED: Permission denied
at /home/luca/PisoReview/node_modules/@firebase/database/dist/index.node.cjs.js:13139:33
at exceptionGuard (/home/luca/PisoReview/node_modules/@firebase/database/dist/index.node.cjs.js:695:9)
at Repo.callOnCompleteCallback (/home/luca/PisoReview/node_modules/@firebase/database/dist/index.node.cjs.js:13130:13)
at /home/luca/PisoReview/node_modules/@firebase/database/dist/index.node.cjs.js:12907:19
at /home/luca/PisoReview/node_modules/@firebase/database/dist/index.node.cjs.js:12078:17
at PersistentConnection.onDataMessage_ (/home/luca/PisoReview/node_modules/@firebase/database/dist/index.node.cjs.js:12111:17)
at Connection.onDataMessage_ (/home/luca/PisoReview/node_modules/@firebase/database/dist/index.node.cjs.js:11394:14)
at Connection.onPrimaryMessageReceived_ (/home/luca/PisoReview/node_modules/@firebase/database/dist/index.node.cjs.js:11388:18)
at WebSocketConnection.onMessage (/home/luca/PisoReview/node_modules/@firebase/database/dist/index.node.cjs.js:11289:27)
at WebSocketConnection.appendFrame_ (/home/luca/PisoReview/node_modules/@firebase/database/dist/index.node.cjs.js:10892:18)
(node:10870) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:10870) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
^C
luca@luca-VirtualBox:~/PisoReview$ ^C
我尝试了其他选项,但我不断收到此“拒绝权限”错误。我该如何解决?
编辑1:
在我的Firebase仪表板中。在Database - Rules
部分中,我有:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
据我了解,这应该意味着每个人都可以访问该数据库。
答案 0 :(得分:1)
我认为您应该配置数据库规则才能使用它。检查以下link,以了解更多信息。
编辑:
检查和添加规则的步骤:
database
,然后在主面板上将有两张卡。一种是Cloud Firestone,另一种是实时数据库。Rules
。 {
"rules": {
".read": true,
".write": true
}
}
如果要查找有关此选项的更多信息,请检查我发布的链接。我希望它能解决您的问题。