.indexOn的Firebase安全规则:iOS / Swift中的唯一uid

时间:2016-03-04 04:55:24

标签: swift firebase firebase-security

我已经看到了几个关于在Firebase中放置特定安全规则的问题。在这些情况下,我已经想出了如何做到这一点。现在我通过authData.uid保存信息并获取此信息....

[Firebase] Using an unspecified index. Consider adding ".indexOn": "4eb8920a-e407-4488-bce4-c6f64f7b0891" at /UserVideo to your security rules for better performance

如何为唯一键添加此类安全规则以及如何?这是我的询问......

let videoRef = self.ref.childByAppendingPath("UserVideo")
        videoRef.queryOrderedByChild("\(currentUser)").queryLimitedToFirst(1)
            .observeEventType(.ChildAdded, withBlock: { snapshot in
                if snapshot != nil

欢迎任何见解!!

*更新*

呀。我忘了添加currentUser是......

let currentUser = ref.authData.uid

查询实际上会返回相关信息。它还包括指定的警告。将尝试第二个答案几次并更新这篇文章,如果它的工作原理。如果有其他人有任何想法,请发布。

1 个答案:

答案 0 :(得分:0)

请参阅:Security & Rules Quickstart

  

安全和Firebase规则用​​于确定谁对您的数据库具有读写权限,以确保该数据的结构。它们位于App Dashboard的“安全”选项卡中。它们分为三种:.write.read.validate

要回答您的问题,请同时使用validatewrite添加唯一键的安全规则。

一个例子是:

{
"rules": {
"foo": {
  // /foo is readable by the world
  ".read": true,
  // /foo is writable by the world
  ".write": true,
  // data written to /foo must be a string less than 100 characters
  ".validate": "newData.isString() && newData.val().length < 100"
}
    }
       }

这有帮助吗?