如何将Firebase认证用户与RevenueCat内购用户匹配并查看详情?
解决Firebase认证用户与RevenueCat购买用户匹配问题
核心排查与配置步骤
- 确保用户ID传递时机正确:必须等用户完成Firebase认证后,再初始化RevenueCat并传入Firebase的
uid作为RC的appUserID。如果RC初始化时用户未完成认证,系统会自动生成匿名ID,后续即使传入真实ID,旧购买记录仍会绑定到匿名哈希ID上。 - 检查ID传递的准确性:直接传入Firebase Auth返回的原始
user.uid字符串,不要做哈希或加密处理,示例代码:// Android 示例 FirebaseAuth.getInstance().currentUser?.let { firebaseUser -> Purchases.configure(PurchasesConfiguration.Builder(context, "你的RC_API_KEY") .appUserID(firebaseUser.uid) .build()) }// iOS 示例 if let firebaseUser = Auth.auth().currentUser { let configuration = PurchasesConfiguration(apiKey: "你的RC_API_KEY") configuration.appUserID = firebaseUser.uid Purchases.configure(with: configuration) }
关联历史匿名购买记录
如果已有用户用匿名ID完成了购买,调用RC的identify方法将匿名ID与Firebase的uid关联,合并历史购买记录到真实用户ID下:
// Android Purchases.sharedInstance.identify(firebaseUser.uid) { purchaserInfo, error -> // 回调中确认关联结果 }
// iOS Purchases.shared.identify(firebaseUser.uid) { purchaserInfo, error in // 验证关联是否成功 }
控制台查看真实用户ID
- 完成上述配置后,新的购买记录会直接显示Firebase的
uid。 - 已关联的历史记录,可在RC控制台用户详情页的「关联的用户ID」中找到对应的Firebase
uid。 - 若仍显示哈希值,检查RC项目设置:进入「隐私」选项,确认「哈希用户ID」是否关闭(开启状态下即使传入真实ID也会显示哈希值)。
验证数据匹配有效性
- 在自有后端或数据库中,存储Firebase
uid与RC返回的appUserID(或purchaserInfo.originalAppUserId)的对应关系。 - 调用RC的
getPurchaserInfo接口,返回的appUserID应与Firebaseuid完全一致,以此确认匹配成功。
内容的提问来源于stack exchange,提问作者yosoybunal
相关产品推荐
相关产品推荐

