【发布时间】:2018-11-16 02:46:02
【问题描述】:
我一直使用parse-server 作为我的后端,现在将我所有的东西迁移到FireStore(专门用于存储额外的用户数据)。现在,通过解析,我可以直接使用ParseUser.getCurrentUser().getString(...) 获取用户数据。如果我使用FireStore,我创建了一个users 集合,我可以为每个用户存储一个document,它还支持本地存储和离线支持。但我面临的问题是我总是需要使用异步/回调方法从document 获取数据。这是android中的一个例子:
final DocumentReference docRef = mFirestore
.collection(USER_COLLECTION).document(mAuthApi.getCurrentUserId());
docRef.get(Source.CACHE).addOnCompleteListener(task -> {
if(task.isSuccessful()) {
......
} else {
......
}
});
有没有一种方法可以直接从DocumentReference同步获取数据假设它是本地缓存的?比如:
mFirestore.collection(USER_COLLECTION).document(mAuthApi.getCurrentUserId()).getString(...)
这对我来说很容易,因为我需要在整个代码库中将 ParseUser.getCurrentUser().getString(...) 替换为等效的 FireStore 调用。
【问题讨论】:
-
我认为这里的基本答案是:不。
-
如果我在 Firestore 中的理解正确,您可以配置离线持久化,如果您启用了离线持久化,当本地缓存数据发生变化时,您的监听器将收到监听事件
标签: android firebase google-cloud-firestore parse-server