我正在使用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 token 。仅当您重新初始化游戏服务时(主要是当您重新安装或更新应用程序时),他们才会向您发送新 token ,并且 One-Signal 通过某些方式从该 token 创建自己的 ID。
关于android - OneSignal 如何生成唯一的持久用户 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41960814/