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()
仅返回它已经拥有的数据的映射