相关疑难解决方法(0)

如何使Firebase Functions充当用户而不是管理员?

我的客户端应用程序正在通过Firebase Functions创建的API访问Firestore。但是,Firebase Functions导入firebase-admin会绕过所有定义的安全规则。有什么方法可以使我的HTTP触发Function充当特定用户(例如,通过将访问令牌从客户端传递到服务器),从而使Function也可以在Firebase Functions的影响下工作。

node.js firebase google-cloud-functions firebase-admin google-cloud-firestore

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

云功能的 Firebase firstore 安全规则

我目前正在设置一个对话流机器人(用于常见问题和联系),并且正在使用谷歌云功能(nodejs)在 firebase firestore 中完成履行/数据存储。

显然,我希望有安全规则,将数据库访问权限限制为仅对话流。谁能指出我正确的方向,我将如何做这件事?

我发现的例子都是关于存储在数据库中的东西的检查,这在我的情况下不起作用..?

firebase firebase-security google-cloud-functions google-cloud-firestore

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

如何在Firestore上以有限的权限使用Admin SDK?

我在使用Cloud函数和Firestore规则时遇到了一些麻烦。我想在Firestore上使用具有有限特权的云功能,并且仅授予安全规则中定义的访问权限

它在RTDB上正常运行,但在Firestore上却没有问题。

我尝试了这个规则

service cloud.firestore {
  match /databases/{database}/documents {

    match /init/{ID=**} {
        allow read, write: if true;
    }

    match /test/{ID=**} {
        allow read, write: if false;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

和这个

const admin = require('firebase-admin');
const functions = require('firebase-functions');
const FieldValue = require('firebase-admin').firestore.FieldValue;

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: 'https://******.firebaseio.com',
    databaseAuthVariableOverride: {
        uid: 'my-worker',
    },
});

const db = admin.firestore();

exports.onTestRights = functions.firestore
    .document('init/{initID}')
    .onCreate((event) => {
        const initID = event.params.initID;
        return db.collection('test').doc(initID).set({'random key': 'random value'}).then(()=>{
            console.log('working');
            return;
        }).catch((err) =>{
            console.log('error: ', err); …
Run Code Online (Sandbox Code Playgroud)

javascript firebase firebase-security google-cloud-functions google-cloud-firestore

3
推荐指数
1
解决办法
1102
查看次数