Firebase Firestore规则get()不起作用

时间:2018-06-23 17:17:07

标签: firebase google-cloud-firestore firebase-security-rules

我的大多数Firestore规则都有效。查找用户是否已签名并在许可下有文档。唯一的是,我想找出那个间隙。为此我功能

function UserClearance() {
    return Number(
        get(/databases/$(database)/documents/Clearance/$(request.auth.uid)).a || 
        get(/databases/$(database)/documents/Clearance/$(request.auth.uid)).data.a
    );
}

然后我将其与类似的数字进行比较

允许写入:if UserClearance() > 1;

尽管我在使用此功能上没有成功,并且想知道如何使它起作用。

Clearance Docs

1 个答案:

答案 0 :(得分:0)

尝试一下。它对我有用:

// helper functions
function clearance(database) {
   return get(/databases/$(database)/documents/Clearance/$(request.auth.uid)).data.a > 1
}

// security rules
service cloud.firestore {
  match /databases/{database}/documents {
    match /Clearance {
     allow read: if clearance(database);
    }
  }
}

确保在正确的范围内使用变量database

资源:Firebase guides: access other documents