应用程序实例id和Firebase中的实例id之间有什么区别



应用程序实例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(。

最新更新