OneSignal 如何生成唯一的持久用户 ID?

How OneSignal generates unique persistent user ID?

我正在使用 OneSignal 向使用我的应用程序的用户发送推送通知。安装并启动应用程序后,将生成一个新的用户(玩家)ID 并将其发送到 OneSignal 服务器,然后您可以在 Web 仪表板中查询使用您的应用程序的用户。

public class MyApp extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        OneSignal.startInit(this).init();
    }

}

当我清除数据并重新运行应用程序时,用户ID仍然相同。我的意思是,只有在我卸载应用程序并重新安装时才会重新创建用户 ID。它是如何完成的?我的意思是,OneSignal 存储第一次创建的用户 ID,以免每次都重新创建。

如果您将某些内容存储在共享首选项或数据库中,一旦您清除应用数据,它们也会被清除。因此,使用共享首选项或数据库是行不通的。我确定这是一件愚蠢的事情,但我想知道它是如何实现的。

要使 OneSignal 正常工作,您应该给它 google_project_number(来自 Firebase)和 Google_server_API_Key,您也可以从 firebase 获取它。 onesignal 在其 SDK 中为您完成的其他工作。所以,这是因为 firebase 令牌。他们仅在您 re-init 播放服务时(主要是在您重新安装或更新应用程序时)向您发送新令牌,而不是 One-Signal 以某些方式从该令牌生成自己的 ID。