gpt4 book ai didi

firebase - flutter : How to clear Firebase cache after logging out from app?

转载 作者:行者123 更新时间:2023-12-04 13:59:23 25 4
gpt4 key购买 nike

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

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

这不是我想要的效果。我只想清除 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);

}
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'));

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

}

最佳答案

but the code clears all my files


检查您提供的片段,应用程序创建的文件将被删除 Directory(appDir).delete(recursive: true); .您在这里拥有的是清除您存储的 SharedPreferences,不一定清除 Firebase 创建的缓存。
Signing out从 FirebaseAuth 应该清除用户实例。无需将用户详细信息存储在 SharedPreferences 中,当用户使用 FirebaseAuth.instance.currentUser 登录时,可以轻松获取用户详细信息。 .这将返回 User class包含用户详细信息。
var user = FirebaseAuth.instance.currentUser;
String? name = user.displayName;
String? email = user.email;
String? id = user.uid;

关于firebase - flutter : How to clear Firebase cache after logging out from app?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54360895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com