доступ к базе данных firebase с локальной машины - PullRequest
1 голос
/ 16 июня 2019

Я новичок в 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;
    }
  }
}

Насколько я понял, это должно означать, что база данных доступна всем.

1 Ответ

1 голос
/ 16 июня 2019

Я думаю, что вы должны настроить правила базы данных, чтобы использовать их. Проверьте следующую ссылку , чтобы узнать больше об этом.

EDIT:

Шаги, чтобы проверить и добавить правила:

  1. Войдите в систему https://console.firebase.google.com/ и выберите свою базу данных. На боковой панели вы должны нажать database, а на главной панели будет две карты. Один из них - Cloud Firestone, а второй - База данных в реальном времени.
  2. Выберите базу данных в реальном времени. Когда база данных открыта, у вас есть новое меню в верхней части, которое говорит «Данные» | «Правила» | "Резервные копии" | "Использование".
  3. Нажмите Rules.
  4. Теперь настройте свои собственные правила, чтобы можно было читать и писать из базы данных. Он принимает формат JSON, например:
{
  "rules": {
    ".read": true,
    ".write": true
  }
}

Если вы хотите узнать больше об этих опциях, пожалуйста, проверьте ссылку, которую я разместил. Я надеюсь, что это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...