Это невозможно, поэтому нам необходимо дублировать данные в NoSQL.
Одна из возможных структур данных:
/ Stories / {storyid}
{
title: "A Great Story",
content: "Once upon a time ...",
roles: {
alice: "owner",
bob: "reader",
david: "writer",
jane: "commenter",
mary: "writer",
// ...
},
owner: "alice", // newly added
shared: ["bob", "david", "jane", "mary"] // newly added
// alice, bob, david, jane, mary are firebase auth uid
}
Таким образом, мы можем запросить пользовательский интерфейс веб-приложения «Моя история»
db
.collection('stories')
.where('owner', '==', uid)
В то время как мы можем запросить пользовательский интерфейс веб-приложения «Shared with me»
db
.collection('stories')
.where('shared', 'array_contains', uid)
Ответ вдохновлен комментариями @Doug Stevenson.