ios - 谷歌firebase手动数据库post approval

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

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

目前的规则是这样的:

{

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

我的意思是允许用户从数据库发帖,但我作为管理员控制帖子是批准还是拒绝来自 firebase 控制台的帖子,这可以通过规则实现吗?

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

最佳答案

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

您实质上所做的是创建一个所谓的审核队列,用户将其发布到其中。所以你最终得到两个顶级节点:

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

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

然后您为版主创建一个单独的应用程序,该应用程序会显示审核队列中的帖子(上面的 /pending),并让他们选择批准或拒绝它们。如果他们批准该帖子,该帖子将添加到常规应用用户看到的实际帖子列表中。

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

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

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

关于ios - 谷歌firebase手动数据库post approval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49717813/

相关文章:

iOS 11 PDFKit - curl 过渡

ios - 试图使 UITableViewCell 的标签宽度受限但高度不受限制

ios - APNS 服务为过期的设备 token 发送 200?

ios - Swift Package Manager 使用 Almofire 时使用未解析的标识符 'AF'

AngularFire2 初始化应用程序出错

ios - 如何从Firebase Storage下载并声明大量图像?

iphone - UITableViewCell 字体大小没有改变

ios - ld : library not found for -lGoogleAdMobAds

ios - 转换视频预览中每个像素的颜色 - Swift

xcode - nw_read_request_report 接收失败,错误 "Software caused connection abort"