all*_*eep 3 persistence offline-caching dart firebase-realtime-database flutter
我正在使用版本1.0.1中的firebase_database插件,目前正在Android上进行测试。
我单身访问数据库。
GlobalFBInstance._internal() {
final firebaseInstance = FirebaseDatabase.instance;
firebaseInstance.goOnline();
firebaseInstance.setPersistenceEnabled(true);
firebaseInstance.setPersistenceCacheSizeBytes(10000000);
databaseRef = firebaseInstance.reference();
databaseRef.keepSynced(true);
storageRef = FirebaseStorage.instance.ref();
}
Run Code Online (Sandbox Code Playgroud)
每次重新启动应用程序后,该应用程序都需要Internet才能获取数据库。我以为持之以恒并保持同步,不需要互联网吗?如果我的连接非常不好(在仿真器和设备上进行了测试),那么从数据库中加载包含四个简单字符串的gridview会花费很多时间。
当我使用以下命令加载数据快照时:
Future<DataSnapshot> getDatabaseSnap(String location) async {
var _newref = databaseRef.child(location);
await _newref.keepSynced(true);
return await _newref.once();
}
Run Code Online (Sandbox Code Playgroud)
如果互联网连接速度慢,它将不会加载。
这可能是什么原因?有没有更好的方法来确保数据库每次都不需要连接?
提前致谢。
编辑:等待持久性时,我得到错误:
bool ispersistant = await firebaseInstance.setPersistenceEnabled(true);
Run Code Online (Sandbox Code Playgroud)
不要使用FirebaseInstance切换持久性存储。使用FirebaseDatabase对象保存实例,然后将其设置为启用。
FirebaseDatabase database;
database = FirebaseDatabase.instance;
database.setPersistenceEnabled(true);
database.setPersistenceCacheSizeBytes(10000000); // 10MB cache is enough
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2922 次 |
| 最近记录: |