相关疑难解决方法(0)

Firebase 通过函数写入 Firestore 时出错:“7 PERMISSION_DENIED:缺少或权限不足”

我正在尝试编写一个简单的 Firebase 函数,使用 TypeScript 将记录添加到 Firestore。代码的精简版本是:

import * as admin from "firebase-admin";
import * as functions from "firebase-functions";

const config = functions.config();

admin.initializeApp(functions.config().firebase);
admin.database.enableLogging(true);

exports.subscriptions = functions.https.onRequest(
  async (req, res) => {
    try {
      const requestSubscription = req.body;
      const subscription = {
        subscription_id: requestSubscription.subscription_id,
        email: requestSubscription.email || ""
      };

      const id = subscription.subscription_id;
      const dbSubscriptions = admin.firestore().collection("subscriptions");
      await dbSubscriptions.doc(id).set(subscription);

      return res.status(200).send(`Success`);
    } catch (e) {
      console.error(e.stack);
      return res.status(500).send(`Error`);
    }
  }
);
Run Code Online (Sandbox Code Playgroud)

这在本地按预期工作。当我部署时,我收到此错误:

Error: 7 PERMISSION_DENIED: Missing or insufficient permissions.
    at …
Run Code Online (Sandbox Code Playgroud)

firebase typescript google-cloud-functions google-cloud-firestore

5
推荐指数
1
解决办法
1725
查看次数

错误7:云功能/firestore权限缺失或不足

我正在使用 firebase 作为后端编写一个应用程序,并且尝试写入数据库,但收到“错误 7:权限缺失或不足”。有人告诉我云功能绕过了 firebase 权限,所以我不确定是什么导致了这个错误。有人可以看一下吗?

这是我的权限:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

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 …
Run Code Online (Sandbox Code Playgroud)

firebase google-cloud-functions google-cloud-firestore

5
推荐指数
1
解决办法
1万
查看次数