谷歌firebase手册数据库批准后

时间:2018-04-08 12:27:44

标签: ios swift firebase firebase-realtime-database firebase-security-rules

有没有办法手动批准通过规则发布到firebase数据库的帖子?

目前的规则是这样的:

{

  "rules": {
    ".read": true,
    ".write": true
  }
}

我的意思是允许用户从数据库发布,但我作为管理员控制帖子批准或拒绝来自firebase控制台的帖子,是否可以通过规则? < / p>

像这样Manual approval / rejection of user registration by admin using Firebase

1 个答案:

答案 0 :(得分:3)

Firebase中没有内置任何此类审批队列,但您绝对可以将其构建到Firebase之上的应用中。

你基本上做的是创建一个所谓的审核队列,用户发布到该队列。所以最终得到两个顶级节点:

posts
  post1: ...
  post2: ...
  post3: ...
pending
  post4: ...
  post5: ...

常规应用的用户只能看到来自/posts的数据。

然后,您为主持人创建了一个单独的应用,该应用会在审核队列(上面为/pending)中显示帖子,并为他们提供批准或拒绝他们的选项。如果他们批准该帖子,则会将其添加到常规应用的用户看到的实际发布列表中。

如果您的版主的应用程序在受信任的环境中运行,您可以考虑使用Admin SDK,它会忽略安全规则并始终拥有对数据库的完全访问权限。在这种情况下,您的规则可以简单如下:

{
  "rules": {
    "posts": {
      ".read": true
    },
    "pending": {
      "$postid": {
          ".write": "!data.exists"
      }
    }
  }
}

这允许任何人阅读帖子,但只有管理员才能阅读。另一方面,任何人都可以写入主持人队列(只要他们不会覆盖现有数据),但只有管理员可以从那里读取。