Я пишу приложение, используя firebase в качестве бэкэнда, и пытаюсь записать в базу данных, но получаю «Ошибка 7: отсутствуют или недостаточно разрешений». Кто-то сказал мне, что облачные функции обходят разрешения firebase, поэтому я не уверен, что может быть причиной этой ошибки. Может кто-нибудь, пожалуйста, посмотрите?
Вот мои разрешения:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
, а вот мой код:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
var express = require('express');
admin.initializeApp(functions.config().firebase);
const app = express();
let db = admin.firestore();
app.get('/helloworld', (req, res) => res.send('Hello World!'));
app.post('/signup', (req, res) => {
var email = req.body.email;
var username = req.body.username;
var password = req.body.password;
//creating document. Here is where it isn't working
let docRef = db.collection('UsersMain').doc('firstdoc');
let data = {
Email: 'a@gmail.com',
UserName: 'Matt'
};
let setDoc = docRef.set(data).then(() => {
res.send('Login Complete');
})
.catch(function(error) {
console.error("Error adding document: ", error);
});
});
const api1 = functions.https.onRequest(app);
module.exports = {api1};
и вот ошибка, я Получение:
{ Error: 7 PERMISSION_DENIED: Missing or insufficient permissions.
> at Object.callErrorFromStatus (/Users/mg8686./Desktop/mattsapp/mattsappfinal/backend/functions/node_modules/@grpc/grpc-js/build/src/call.js:30:26)
> at Http2CallStream.call.on (/Users/mg8686./Desktop/mattsapp/mattsappfinal/backend/functions/node_modules/@grpc/grpc-js/build/src/client.js:96:33)
> at Http2CallStream.emit (events.js:203:15)
> at process.nextTick (/Users/mg8686./Desktop/mattsapp/mattsappfinal/backend/functions/node_modules/@grpc/grpc-js/build/src/call-stream.js:97:22)
> at process._tickCallback (internal/process/next_tick.js:61:11)
> code: 7,
> details: 'Missing or insufficient permissions.',
> metadata: Metadata { internalRepr: Map {}, options: {} } }
Может кто-нибудь, пожалуйста, посмотрите? Спасибо!