所以我正在开发一个使用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中的更多信息:
初始状态可以直接来自服务器,也可以来自本地缓存。如果本地缓存中有可用状态,则最初将使用缓存数据填充查询快照,然后在客户端赶上服务器状态时使用服务器数据进行更新。
答案 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>() {
// ...
});
的文档