我创建了一个匿名用户可以撰写评论的应用。现在我希望他们也可以编辑和删除(仅)他们的评论。这可能不使用firebase auth吗? 由于它只是用户的一次性应用程序,因此为每个用户创建一个登录是一种过度杀伤。
我尝试使用comment-object存储editKey,该对象应该允许用户编辑/删除他的评论。 (我将此密钥存储在浏览器中的cookie中)
然后以某种方式拒绝通过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()?
答案 0 :(得分:1)
您正在寻找匿名使用Firebase进行身份验证
https://firebase.google.com/docs/auth/web/anonymous-auth#authenticate-with-firebase-anonymously
您可以使用Firebase身份验证来创建和使用临时身份验证 要使用Firebase进行身份验证的匿名帐户。这些暂时的 匿名帐户可用于允许尚未签名的用户 由您的应用程序处理受安全规则保护的数据。如果 匿名用户决定注册您的应用,您可以链接他们的 登录匿名帐户的凭据,以便他们可以继续 在未来的会议中使用受保护的数据。