我正在为应用程序实例生成唯一的标识符(字符串)。
我需要这个,因为我是以以下格式在Firestore中存储用户个人资料:
/phones/{phoneId}/users/{user}/
..其中1台设备上有多个用户配置文件(无身份验证)。 phoneId
是应用程序实例的唯一字符串标识符。
但是,当我表演时:
var uniqueID = UUID.randomUUID().toString()
Log.d("UniqueID", uniqueID )
uniqueId
每次都返回一个随机字符串。 The documentation states that "GUIDs can also be used to uniquely identify an app instance"-但就像我说的那样,每次打印uniqueId
时我得到的字符串都不相同。
这是什么原因,或者是否有更好的选择来使用不可变的字符串来唯一标识应用程序实例?
答案 0 :(得分:1)
每次调用UUID.randomUUID().toString()
都会生成一个唯一的ID。那是根据定义。如果您想要一个唯一的ID,则只应调用UUID.randomUUID().toString()
一次,并将值存储在应用启动之间的SharedPreferences
之类的地方。
请注意,这与Firebase Instance IDs的用途非常相似,因此您也可以考虑使用它来识别设备。