我正在使用firebase云功能来运行REST API,并且我通过firebase init
设置了firebase repo。
现在我不得不手动进入web控制台更改每个firebase功能的权限,但我想知道是否有一种方法可以编写一个规则文件,通过firebase CLI自动设置部署权限。
从研究中,我看到您可以使用DB的database.rules.json
和每个相应资源的firestore.rules
/storage.rules
来执行此操作。但我看不到任何等效的functions.rules
,也没有我能够在文档中找到答案。
(这些规则文件被记录- https://firebase.google.com/docs/rules/manage-deploy),但我还没有找到任何等效的函数文档。
对于您的用例,您可以使用Admin SDK在您的云功能上实现它。参见下面的示例代码:
const source = `service cloud.firestore {
match /databases/{database}/documents {
match /carts/{cartID} {
allow create: if request.auth != null && request.auth.uid == request.resource.data.ownerUID;
allow read, update, delete: if request.auth != null && request.auth.uid == resource.data.ownerUID;
}
}
}`;
// Alternatively, load rules from a file
// const fs = require('fs');
// const source = fs.readFileSync('path/to/firestore.rules', 'utf8');
await admin.securityRules().releaseFirestoreRulesetFromSource(source);
对于Firebase Storage,您可以使用releaseStorageRulesetFromSource()
。
如何使用它来实现你想要达到的目标完全取决于你自己。
有关更多指导和信息,您可以查看这些文档:
- 将Firebase Admin SDK添加到您的服务器
- 使用Admin SDK <
- SecurityRules类/gh>