为应用程序实例生成唯一 ID

Generating a unique ID for an application instance

我希望为应用程序实例生成一个唯一标识符(字符串)。

我需要这个,因为我在 Firestore 中以这种格式存储用户配置文件:

/phones/{phoneId}/users/{user}/

..其中一台设备上有多个用户配置文件(无身份验证)。 phoneId 是应用程序实例的唯一字符串标识符。

然而,当我执行时:

var uniqueID = UUID.randomUUID().toString()
Log.d("UniqueID", uniqueID )

uniqueId returns 每次一个随机字符串。 The documentation states that "GUIDs can also be used to uniquely identify an app instance"- 但正如我所说,每次 uniqueId 打印时我都没有得到相同的字符串。

为什么会这样,或者是否有更好的替代方法来使用不可变字符串来唯一标识应用程序实例?

每次调用 UUID.randomUUID().toString() 它都会生成一个唯一的 ID。这是根据定义。如果您想要一个唯一的 ID,您应该只调用一次 UUID.randomUUID().toString() 并将值存储在应用程序启动之间的 SharedPreferences 之类的东西中。

请注意,这与 Firebase Instance IDs 的目的非常相似,因此您也可以考虑使用它来识别设备。