Firebase:编辑/删除操作的授权,无需创建用户登录

时间:2018-04-05 22:50:21

标签: javascript firebase firebase-realtime-database firebase-authentication

我创建了一个匿名用户可以撰写评论的应用。现在我希望他们也可以编辑和删除(仅)他们的评论。这可能不使用firebase auth吗? 由于它只是用户的一次性应用程序,因此为每个用户创建一个登录是一种过度杀伤。

我尝试使用comment-object存储editKey,该对象应该允许用户编辑/删除他的评论。 (我将此密钥存储在浏览器中的cookie中)

enter image description here

然后以某种方式拒绝通过firebase规则读取editKey(".read:" false)。仅在知道editKey时允许写入操作:".write": "data.val() == newData.val()"

"comments" : {
    ".read": true,
    "$comment_id": {
        ".write": "!data.exists() && newData.exists()",
            "text": {
                ".validate": "newData.isString()"
            },
            "created": {
                ".validate": "newData.isNumber()"
            },
            "editKey": {
                ".read": false,
                ".write": "data.val() == newData.val()",
                ".validate": "newData.isString()"
            },
            "visible": {
                ".validate": "newData.isBoolean()"
            },
    }
} 

但是这不起作用,因为当我为editKey设置规则".read:" false时,整个评论应该是公开的,不可读。

如何实现这一目标没有 firebase.auth()?

1 个答案:

答案 0 :(得分:1)

您正在寻找匿名使用Firebase进行身份验证

https://firebase.google.com/docs/auth/web/anonymous-auth#authenticate-with-firebase-anonymously

  

您可以使用Firebase身份验证来创建和使用临时身份验证   要使用Firebase进行身份验证的匿名帐户。这些暂时的   匿名帐户可用于允许尚未签名的用户   由您的应用程序处理受安全规则保护的数据。如果   匿名用户决定注册您的应用,您可以链接他们的   登录匿名帐户的凭据,以便他们可以继续   在未来的会议中使用受保护的数据。

相关问题