如何删除本地缓存中的可用状态?

时间:2017-10-17 12:57:34

标签: java android firebase google-cloud-firestore

所以我正在开发一个使用firebase的firestore的应用程序,并且想知道这是否可行,因为我不希望我的应用程序检查服务器中不再存在的数据。

例如:

DocumentSnapshot.exists()


使用from pandas.io import sql from sqlalchemy import create_engine engine = create_engine("mysql+pymysql://{user}:{pw}@localhost/{db}" .format(user="root", pw="your_password", db="pandas")) df.to_sql(con=engine, name='table_name', if_exists='replace') 过滤仅存在于服务器中的快照不起作用


this page中的更多信息:

  

初始状态可以直接来自服务器,也可以来自本地缓存。如果本地缓存中有可用状态,则最初将使用缓存数据填充查询快照,然后在客户端赶上服务器状态时使用服务器数据进行更新。

1 个答案:

答案 0 :(得分:1)

您可以通过检查其元数据来确定快照是否来自缓存。

QuerySnapshot#getMetadata()返回SnapshotMetadata个对象。 如果快照来自缓存,则SnapshotMetadata#isFromCache()返回布尔值。

如果您希望在元数据发生变化时收到通知(这样您就可以知道isFromCache()是否发生了变化),那么您必须在添加监听器时传递选项:

   // Create options
   QueryListenOptions options = new QueryListenOptions().includeDocumentMetadataChanges();

   // Pass them when you add the listener
   collectionReference.addSnapshotListener(options, new EventListener<QuerySnapshot>() {
       // ...
   });

请参阅addSnapshotListener

的文档