jquery - Firestore 权限规则
问题描述
有 2 个应用程序使用相同的 Firestore 数据。1.前端 2.后端
前端 使用 jquery 仅显示数据。
后端 Angular7 管理应用程序,用于为前端创建、更新、删除数据。
现在前端提示错误
错误:PERMISSION_DENIED:权限被拒绝
Firestore 规则
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
代码
var dbRef = firebase.database();
var contactsRef = dbRef.ref("Slides");
//load older conatcts as well as any newly added one...
contactsRef.on("child_added", function(snap) {
console.log("added", snap.key(), snap.val());
$("#contacts").append(contactHtmlFromObject(snap.val()));
});
function contactHtmlFromObject(contact) {
console.log(contact);
var html = "";
html += '<li class="list-group-item contact">';
html += "<div>";
html += '<p class="lead">' + contact.name + "</p>";
html += "</div>";
html += "</li>";
return html;
}
解决方案
Firebase 中有两种数据库:实时数据库和Firestore。
您的请求正在访问实时数据库:
var dbRef = firebase.database();
var contactsRef = dbRef.ref("Slides");
但规则适用于您的Firestore数据库:
service cloud.firestore {
因此,您需要转到 Firebase 中的“数据库”部分,在标题旁边您会看到一个下拉列表。切换到实时数据库,然后选择Rules
选项卡。
它应该如下所示:
{
"Slides": {
".write": "auth != null",
".read": true,
},
}
推荐阅读
- javascript - 如何使用适用于 JavaScript 的 Microsoft Graph 客户端在展开的字段中选择字段
- javascript - 试图将对象推入数组,数组未定义
- castle-windsor - 如何注册通用 UnitOfWork
在温莎城堡中使用非通用 IUnitOfWork? - rest - REST API 设计 - 多个端点
- druid - 将大的本地 json 文件注入 Druid
- javascript - javascript可以显示任何扩展名的任何外部文件的文本吗?
- mysql - Mysql子查询ID匹配外部查询
- c# - 有什么方法可以使我的 Windows 应用程序窗体透明,但不影响内部元素(按钮、图片框等)?
- javascript - 如何解决“XMLHttp ...已弃用”问题
- python-3.x - 检查数据框是否存在,如果存在则合并