如何在颤动中自动注销firebase用户?

Posted

技术标签:

【中文标题】如何在颤动中自动注销firebase用户?【英文标题】:How to auto signOut a firebase user in flutter? 【发布时间】:2021-11-30 10:57:05 【问题描述】:

我正在开发一个以 firebase 作为后端和身份验证的 Flutter 应用程序,现在我希望该应用程序有一个试用版,用户可以在其中使用 Google 登录并使用该应用程序的全部功能(大约一小时),然后在一小时结束后自动退出。

到目前为止,我完成了以下工作:1- 使用 google 帐户登录。 2- 将登录用户添加到 _trial collection with timeStamp.

Future enterTrial() async 
    final UserCredential user = await Auth.instance.googleSignInMethod();
    final User actualUser = user.user;
    try 
        //_trial is a collection for users in Trial Period
      await _trial.doc(actualUser.email).set(.   
        "name": actualUser.displayName,
        "email": actualUser.email,
        "creationDate": FieldValue.serverTimestamp(),
      );
     catch (e) 
      print(e);
    
  

还剩什么: 登录一小时后,注销并将用户从 _trial collection 移动到 _expired collection

这样我就可以检查用户是否已过期。 有没有办法在一段时间后自动注销?或定期比较creationTime 与currentTime 并相应地signOut? 提前致谢。

【问题讨论】:

【参考方案1】:

是的,您可以通过使用background_fetch 包来实现这一点,这为您提供了一个回调函数,您可以在该函数中调用您的注销方法。

【讨论】:

非常感谢您的回复,我试试看。 你知道如何比较两个时间戳吗? 只切片你想比较的字段

以上是关于如何在颤动中自动注销firebase用户?的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中自动登录现有用户

Firebase 在创建新用户时注销当前用户

当我在标签之间导航时自动注销问题(Firebase Auth rest API)

当用户注销其中一个标签时,如何自动从所有打开的标签中注销用户?

如何在 CMS PHP 中自动注销非活动用户

如何在 Firebase 3.0 中注销用户?