Я новичок в javascript, веб-разработке и 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:
В моей пожарной панели. В разделе Database - Rules
у меня есть:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
Насколько я понял, это должно означать, что база данных доступна всем.