Firebase删除子权限被拒绝

时间:2017-04-14 10:25:10

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

JSON如下所示:enter image description here

我想从user_lookup

中删除[steven:uid]的子节点

这是代码:

self.ref.child("user_lookup").queryOrderedByValue().queryEqual(toValue: user?.uid).observe(.value, with: { snapshot in

                            if snapshot.exists() {

                                print("I got it")
                                // remove [steven, uid]

                            } else {

                                print("Not found")

                            }

我不知道如何移除孩子,但我尝试输入removeValue但我得到了Permission_denied

以下是规则:

`"user_lookup": {
      ".read": "auth !== null",
            ".write": "auth !== null && !data.exists()",

        ".indexOn": [".value"],

我认为它是因为“!data.exists()”但我不想复制数据,那么如何解决这个问题呢? 如何移除孩子,任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我认为这可能是你想要的:

".write": "
  (auth.uid === newData.val() && !data.exists()) || 
  (auth.uid === data.val() && !newData.exists()"

第一个表达式或者或者允许用户声明他们的名字,如果它还没有存在的话。第二个表达式允许删除他们的声明。