【发布时间】:2020-01-28 03:28:56
【问题描述】:
这似乎是一个非常简单的问题,我想我只是盯着它太久了。我正在尝试在我的数据库上查询交易历史,但我只希望用户能够阅读他们所涉及的交易文档。我知道查询约束必须匹配规则约束,而我的似乎是。有人能找出这里出了什么问题吗?
Firebase 规则
match /transaction-history/{transactionId}{
allow read: if isPurchaserOrReciever(getTransaction(transactionId));
}
function isPurchaserOrReciever(transaction) {
return transaction.purchaserId == request.auth.uid || transaction.recieverId == request.auth.uid;
}
function getTransaction(transactionId) {
return get(/databases/$(database)/documents/transaction-history/$(transactionId)).data;
}
我的应用程序中的数据库查询。
await firestore
.collection('transaction-history')
.where('purchaserId', isEqualTo: myId)
.getDocuments()).documents;
【问题讨论】:
-
目前有什么问题?是所有人都被屏蔽还是没有人被屏蔽?
-
所有人都被屏蔽了
-
但是如果我运行模拟器,一切都会像我期望的那样运行
标签: firebase google-cloud-firestore firebase-security