相关疑难解决方法(0)

颤动:如何强制重启应用程序(在生产模式下)?

生产模式中,有没有办法强制完全重启应用程序(我不是在讨论开发时的热重载!).

实际使用案例:

  • 在初始化过程中,应用程序检测到没有网络连接.缺乏网络连接可能阻止了正确的启动(例如加载外部资源,如JSON文件......).

  • 在最初的握手过程中,需要下载一些重要资源的新版本(更新类型).

在这两种用例中,我希望应用程序继续完全重启,而不是必须在ApplicationState级别构建复杂的逻辑.

非常感谢您的提示.

flutter

25
推荐指数
9
解决办法
9697
查看次数

如何在 Flutter 中正确调用 FirebaseFirestore.instance.clearPersistence()?

我面临着和这个家伙的问题一样的问题

但他接受的答案对我没有帮助。

问题:

当一个用户退出时,另一个不同的用户登录时,由于 Firebase 缓存系统,我的应用程序上显示的所有数据都来自前一个退出用户。我搜索了这个问题并找到了一个解决方案,它包括调用这个方法:

FirebaseFirestore.instance.clearPersistence();
Run Code Online (Sandbox Code Playgroud)

但是无论何时何地,我放置这行代码时,都会抛出一个异常,说在客户端运行时我无法调用此方法:

发生异常。PlatformException (PlatformException(failed-precondition, 操作被拒绝,因为系统未处于操作执行所需的状态。如果执行查询,请确保已通过 Firebase 控制台对其进行索引。, {code: failed-precondition, message:操作被拒绝,因为系统未处于操作执行所需的状态。如果执行查询,请确保已通过 Firebase 控制台对其进行索引。nativeErrorMessage: 客户端运行时无法清除持久性。nativeErrorCode: 9} ))

那么,如何调用这个方法呢?或者更好,有没有最好的方法来解决这个问题?

firebase flutter google-cloud-firestore

8
推荐指数
2
解决办法
817
查看次数

Flutter:从应用程序注销后如何清除 Firebase 缓存?

我试图在用户从应用程序注销后清除 Firebase 缓存。我已经尝试过这个,但代码似乎清除了我的所有文件,因为我在注销之前有背景图像,并且所有这些图像在注销后都消失了。

void clearCache() async{
var appDir = (await getTemporaryDirectory()).path;
new Directory(appDir).delete(recursive: true); }
Run Code Online (Sandbox Code Playgroud)

这不是我想要的效果。我只想清除 Firebase 缓存并保留其余的应用程序文件。我将如何实现这一目标?

这是注销代码片段

new FlatButton(
          child: new Text("Yes",style: new TextStyle(fontFamily: 'DroidSansChinese', color: Colors.white),),
          onPressed: () {_signOut(); clearPreferences();clearCache();},
        ),

void _signOut() async {
await _auth.signOut();
Navigator.of(context)
    .pushAndRemoveUntil(MaterialPageRoute(builder: (context) => LoginPage()), (Route<dynamic> route) => false);
Run Code Online (Sandbox Code Playgroud)

}

void clearPreferences() async{
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString('name', '');
await prefs.setString('surname', '');
await prefs.setString('email', '');
await prefs.setString('id', '');
print(prefs.getString('name'));
Run Code Online (Sandbox Code Playgroud)

}

void clearCache() async{
var appDir = (await getTemporaryDirectory()).path; …
Run Code Online (Sandbox Code Playgroud)

dart firebase flutter

5
推荐指数
1
解决办法
2941
查看次数

标签 统计

flutter ×3

firebase ×2

dart ×1

google-cloud-firestore ×1