应用程序实例id和Firebase中的实例id之间有什么区别?
我们可以通过分别得到两个不同的值
print("app instance id: (Analytics.appInstanceID())")
InstanceID.instanceID().getID { (idString, error) in
print("instance id: (idString)")
}
它们似乎都有相同的行为,即在卸载和重新安装应用程序后会有所不同。那么为什么Firebase需要有两个属性呢?我看不出与文件有什么不同。
示例值:
InstanceID.instanceID().getID()
:fPuHFoJSGEJYsguI_2IPXF
Analytics.appInstanceID()
:8f1c7c2c9a554decaf27db6eff5b301
假设您在应用程序中使用Firebase Analytics(否则您将无法使用Analytics.appInstanceID()
方法(。从文档中,Firebase Analytics对象是:
顶级Firebase Analytics单例,它为记录事件和设置用户属性。
此分析单例具有与其关联的ID,该ID对于应用程序实例是唯一的。即:如果卸载并重新安装该应用程序,将创建一个新的单例实例,并且ID将更改。此ID称为appInstanceId
。
您所说的InstanceID是与应用程序中的Firebase安装相关联的ID。来自文档:
每个配置的FirebaseApp都有一个对应的安装。类的实例提供对FirebaseApp的安装信息以及删除功能它。FirebaseApp.name和FirebaseApp.options.googleAppID.
Firebase安装服务及其相关ID用于许多Firebase服务,而不仅仅是分析。请参阅此处查看列表。
可能存在这样的情况:您正在使用某些Firebase服务,因此实例ID将被使用(可能仅由SDK在后台使用(,但您没有使用Firebase Analytics,因此appInstanceId
可能根本没有功能。
简而言之,appInstanceId
是与应用程序中的Firebase Analytics实例关联的ID。而InstanceID
(或安装ID(涵盖了更广泛的范围,用于各种Firebase服务,如果需要,还可以用于标识和身份验证令牌生成。
请注意不赞成使用InstanceID API。请使用FirebaseInstallations(此版本适用于Android(。