【问题标题】:FriendlyPix secruity write rule not workingFriendlyPix 安全写入规则不起作用
【发布时间】:2017-10-19 21:16:30
【问题描述】:

我使用 FriendlyPix 数据库作为我的数据库的基础。

我已尝试将以下安全规则应用于:

  1. 只允许经过身份验证的用户插入新帖子
  2. 编辑或删除现有帖子只能由帖子创建者执行

我使用了来自FriendlyPix GitHub repository 的安全规则,但是当我运行模拟器时,我总是收到“Write Denied”错误消息。

我尝试了各种版本的写入规则,但都失败了。

谁能告诉我我做错了什么?

【问题讨论】:

    标签: firebase firebase-realtime-database firebase-security


    【解决方案1】:

    您正在尝试写信给/posts。在 JavaScript 代码中,您的模拟类似于:

    var postsRef = firebase.database().ref("posts");
    postref.set( { "-Kj...": { author: { full_name: "Stuart", uid: "..." }}});
    

    由于没有人对该级别具有写入权限,因此写入被拒绝。

    您可以完成您需要的事情,但您需要确保您只写信给/posts/-Kj....。在 JavaScript 代码中类似于:

    var postsRef = firebase.database().ref("posts");
    postref.push().set({ author: { full_name: "Stuart", uid: "..." }});
    

    现在您正在写一个特定的帖子,这是您的安全规则所允许的。

    【讨论】:

    • 谢谢弗兰克,这是否意味着无法使用模拟器测试此安全规则?
    • 很可能测试这个规则。你只需要写到一个较低的级别,就像代码一样。如果你模拟写入/posts/-Kj...,模拟器会显示允许。
    • 顺便说一句:如果你使用update(),你的写操作会成功,因为它只更新一个/posts/-Kj...子。但模拟器只模拟set()操作,正确失败。
    猜你喜欢
    • 2018-01-30
    • 2019-01-31
    • 1970-01-01
    • 2018-03-19
    • 2021-05-12
    • 2021-11-22
    • 2019-09-06
    相关资源
    最近更新 更多