Firebase 数据何时在firestore中实际传输?在文档快照中?或者直到调用.data()或.get()为止?

Firebase 数据何时在firestore中实际传输?在文档快照中?或者直到调用.data()或.get()为止?,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我正在尝试决定如何构造应用程序的权限。这在很大程度上归结为标题中的问题。具体来说,如果我打电话: const tasks=db.collection('tasks')。其中('canRead','array contains',firebase.auth().currentUser.uid)。get()并检索文档快照数组,是每个快照的实际传输数据,还是在迭代该数组之前未传输数据: for(让taskSS of tasks.docs){…并最终使用let task=taskSS.data()调用.

我正在尝试决定如何构造应用程序的权限。这在很大程度上归结为标题中的问题。具体来说,如果我打电话:

const tasks=db.collection('tasks')。其中('canRead','array contains',firebase.auth().currentUser.uid)。get()
并检索文档快照数组,是每个快照的实际传输数据,还是在迭代该数组之前未传输数据:

for(让taskSS of tasks.docs){…
并最终使用
let task=taskSS.data()调用.data()

我询问的原因是,如果我有一个任务文档,其中包含大量用户,这些用户可以获取并列出该任务,我不想在初始
db.collection('tasks')上传输所有数据,其中('canRead','array contains',firebase.auth().currentUser.uid.)
调用

如果在调用.data()或.get()之前数据实际上没有传输,那么我可以将所有任务数据放在task.public中,然后执行
let task=taskSS.get('public')


有人知道实际数据是何时通过firestore传输并放入内存的吗?在您使用.data()或.get()请求数据之前,数据实际上是“在”文档快照中还是不传输?

当您调用
get()
onSnapshot()时,数据会从数据库传输到您的应用程序
。每个
DocumentSnapshot
在获取文档时都包含该文档的所有数据。调用
document.data()
仅返回它已经拥有的数据的映射