简体   繁体   English

从本地机器访问 firebase 数据库

[英]access to firebase database from local machine

I am new to javascript, web development and firebase.我是 javascript、web 开发和 firebase 的新手。 I am trying to learn it using simple scripts.我正在尝试使用简单的脚本来学习它。

I wrote the following script:我写了以下脚本:

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");

and I get the following:我得到以下信息:

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

I have tried different options but I kept getting this Permission denied error.我尝试了不同的选项,但我一直收到此权限被拒绝错误。 How can I fix it ?我该如何解决?

EDIT 1:编辑 1:

In my firebase dashboard.在我的 Firebase 仪表板中。 In the Database - Rules section I have:Database - Rules部分我有:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

As far as I understood this should mean that the database is accessible by everybody.据我了解,这应该意味着每个人都可以访问数据库。

I think that you should configure database rules in order to use it.我认为您应该配置数据库规则才能使用它。 Check the following link to find out more about it.查看以下链接以了解更多信息。

EDIT:编辑:

Steps to check and add rules:检查和添加规则的步骤:

  1. Login to https://console.firebase.google.com/ and choose your database.登录https://console.firebase.google.com/并选择您的数据库。 On the sidepanel, you should click database and on your main panel, there will be two cards.在侧面板上,您应该单击database ,在您的主面板上,将会有两张卡片。 One is Cloud Firestone and the second one is Realtime Database.一个是 Cloud Firestone,第二个是实时数据库。
  2. Choose Realtime Database.选择实时数据库。 When database is opened, you have new menu on the top of it that says "Data" |当数据库打开时,它的顶部有一个新菜单,上面写着“数据” | "Rules" | 《规则》 | "Backups" | “备份” | "Usage". “用法”。
  3. Click on Rules .点击Rules
  4. Now setup your own rules to be able to read and write from database.现在设置您自己的规则,以便能够从数据库读取和写入。 It accepts JSON format like:它接受 JSON 格式,如:
{
  "rules": {
    ".read": true,
    ".write": true
  }
}

If you want to find more about this options, please check link that i've posted.如果您想了解有关此选项的更多信息,请查看我发布的链接。 I hope it solves your problem.我希望它能解决你的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM