【问题标题】:Flutter check if app was uninstall or first time颤动检查应用程序是卸载还是第一次
【发布时间】:2023-02-12 06:03:28
【问题描述】:

我有一个 flutter 应用程序,我使用 flutter 安全存储。 我正在应用程序中实现 FCM(Firebase Cloud Messaging)推送通知。

我有一个主屏幕,在用户登录后,我会检查用户是否是第一次使用该应用程序,或者该应用程序是否已卸载。

我通过安全存储中的密钥进行此检查,如果密钥的值为空,则我假设用户是第一次使用该应用程序。因此,如果这是我第一次在数据库中插入从 firebase 收到的令牌。

问题:这种方法是否适用于卸载应用程序或清除存储空间的情况?通常情况下,如果用户卸载应用程序并在一段时间后再次安装应用程序,则存储应该被清除并且该密钥应该为空,对吧?

谢谢你!

【问题讨论】:

    标签: flutter firebase-cloud-messaging flutter-secure-storage


    【解决方案1】:

    这种方法是有效的,但不是最好的解决方案,因为如果应用程序未安装,您会丢失密钥,最好的方法是将唯一的设备 ID 保存在您自己的后端,并在应用程序启动时检查此值。 (你可以使用这个 flutter 包https://pub.dev/packages/flutter_udid)。

    如果您不想使用包,请检查是否创建了一个用户,如果用户已经在您的后端创建,这不是第一次。

    【讨论】:

    • 感谢您的回答。我应该在每次启动时比较该设备 ID 的令牌吗?代币有机会改变吗?我知道如果卸载应用程序或清理存储空间,令牌将会丢失,但令牌会发生变化吗?
    • @Daniel 如果你使用这个包,你不会丢失令牌,只有当你将设备格式化为出厂默认设置时,它才会被修改。
    【解决方案2】:

    我想出了一个使用platform_device_id 获取设备 ID 并将其存储在网络上的想法,当用户卸载应用程序并再次重新安装时,我会知道用户的旧用法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-05
      • 1970-01-01
      • 2011-08-20
      • 2014-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      相关资源
      最近更新 更多