【问题标题】:Firebase ios unable to get timestamp [Firebase/Database][I-RDB038012] Listener at /serverTimestamp failed: permission_deniedFirebase ios 无法获取时间戳 [Firebase/Database][I-RDB038012] /serverTimestamp 的侦听器失败:permission_denied
【发布时间】:2018-11-09 03:38:24
【问题描述】:

我正在使用此代码

var currentTimeStamp: TimeInterval?

    let ref = Database.database().reference().child("serverTimestamp")

    ref.setValue(ServerValue.timestamp())

    ref.observe(.value, with: { snap in

        if let t = snap.value as? Timestamp {
           // print(t/1000)
           // currentTimeStamp = t/1000

            //Add additional data(Timestamp) to list
            mutableData["timestamp"] = currentTimeStamp

            //FINALLY , set data
            newdoc.setData(mutableData) { (error) in
                completion(docID)
            }
        }
    })

收到此错误

Firebase/Database][I-RDB038012] Listener at /serverTimestamp failed: permission_denied

我的规则设置为 Auth ,但 auth 用户仍然无法获取时间戳

// These rules grant access to a node matching the authenticated
// user's ID from the Firebase auth token
{
  "rules": {
    "users": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
  }
}

我想在 Firebase 实时数据库当前结构中写入时间戳是 .

我的项目 [null] |____ 服务器时间戳:1

我以为我已经设置了完成公开的规则仍然无法获取时间戳

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database


    【解决方案1】:

    您的规则是为用户节点设置的。您还需要为“serverTimestamp”节点指定规则。

        {
          "rules": {
            "users": {
               "$uid": {
                  ".read": "$uid === auth.uid",
                  ".write": "$uid === auth.uid"
               }
            },
            "serverTimestamp": {
               ".read": "auth_uid != null",
               ".write": "auth_uid != null"
            }
          }
        }
    

    如果你保持结构不变的话。

    当您在 Firebase 中指定规则时,它们使用的术语是原子的,您需要为每个节点指定规则,每个子节点在应用自己的规则之前应用父节点的规则。您的规则仅适用于“$uid”节点,您没有为“serverTimestamp”指定任何规则,并且由于“serverTimestamp”不属于“$uid”权限被拒绝。

    例如,如果您尝试读/写“用户”节点,则使用您当前的权限,您也将获得权限被拒绝。你只能访问“users/($uid)/”

    【讨论】:

      猜你喜欢
      • 2017-12-26
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      • 2014-10-21
      • 2020-03-05
      • 1970-01-01
      相关资源
      最近更新 更多