我阅读了文档,没有任何内容可以理解您可以使用参考数据类型做什么。
此代码出现在安全规则的文档中:
match /messages/{messageId} {
allow read: if exists(/databases/$(database)/documents/rooms/$(roomId)/users/$(request.auth.uid));
}
我不知道以前的代码,我想知道你是否可以这样做:
match /messages/{messageId} {
allow read: if exists(resource.data.user_ref);
}
或
match /messages/{messageId} {
allow read: if get(resource.data.user_ref).data.name == 'fran';
}
根据 get 和 exists 函数 的文档,我的感觉是不可能的。提供的路径必须以/ databases开头/ $(数据库)/ documents。 因为我可以看到存储在DB中的引用是这样的:
firestore.googleapis.com/project/x/database/(default)/documents/messages/messageId
我想知道你在JS客户端可以做些什么,比如这样的事情:
var docRef = db.collection("messages/message1");
docRef.get().then(function(doc) {
var userDocRef = db.collection(doc.data().user_ref);
userDocRef.get().then(function(userDoc) {
console.log("User data:", userDoc.data());
});
});
如果有人能够通过示例更详细地解释这种数据类型,我将非常感激。 提前谢谢。