有没有办法手动批准通过规则发布到firebase数据库的帖子?
目前的规则是这样的:
{
"rules": {
".read": true,
".write": true
}
}
我的意思是允许用户从数据库发布,但我作为管理员控制帖子批准或拒绝来自firebase控制台的帖子,是否可以通过规则? < / p>
像这样Manual approval / rejection of user registration by admin using Firebase
答案 0 :(得分:3)
Firebase中没有内置任何此类审批队列,但您绝对可以将其构建到Firebase之上的应用中。
你基本上做的是创建一个所谓的审核队列,用户发布到该队列。所以最终得到两个顶级节点:
posts
post1: ...
post2: ...
post3: ...
pending
post4: ...
post5: ...
常规应用的用户只能看到来自/posts
的数据。
然后,您为主持人创建了一个单独的应用,该应用会在审核队列(上面为/pending
)中显示帖子,并为他们提供批准或拒绝他们的选项。如果他们批准该帖子,则会将其添加到常规应用的用户看到的实际发布列表中。
如果您的版主的应用程序在受信任的环境中运行,您可以考虑使用Admin SDK,它会忽略安全规则并始终拥有对数据库的完全访问权限。在这种情况下,您的规则可以简单如下:
{
"rules": {
"posts": {
".read": true
},
"pending": {
"$postid": {
".write": "!data.exists"
}
}
}
}
这允许任何人阅读帖子,但只有管理员才能阅读。另一方面,任何人都可以写入主持人队列(只要他们不会覆盖现有数据),但只有管理员可以从那里读取。