我似乎碰到了一堵砖墙,但基本上我在我的应用程序中的是用户的登录页面和创建帐户页面。当用户打开我的应用并创建新帐户时,他们的信息将存储在Firebase服务器(BaSS)上。
现在我的问题是我将如何制作它,以便通过我的应用程序创建帐户的每个用户,他们都可以选择订阅我的应用程序,并且此订阅仅对他们的帐户有效(不是苹果ID )。目前,如果用户与我创建了一个帐户并继续说订阅服务,那么一切都可以访问应用程序的全部功能。
但是,当他们退出并创建另一个帐户时,因为现在订阅与用户的 apple ID 相关联,另一个帐户或任何帐户都可以拥有完全访问权限到申请。不只是购买的那个。
所以我想我的问题是如何制作它以便每次订阅/购买都与我的内部用户相关联,而不是设备上登录的 apple id 。 (基本上像 pandora 或 spotify ,您对该应用的访问权限取决于您的帐户,而不是您的苹果ID)
根据苹果文档:
坚持使用自己的服务器 将收据的副本连同某种凭据或标识符一起发送到您的服务器,以便您可以跟踪哪些收据属于特定用户。例如,让用户使用电子邮件或用户名以及密码向服务器标识自己。不要使用UIDevice的identifierForVendor属性 - 您不能使用它来识别和恢复同一用户在其他设备上进行的购买,因为不同的设备对此属性具有不同的值。
我如何使用Firebase进行类似的操作?
答案 0 :(得分:7)
在iTunes上完成交易后,您将获得该购买的交易收据。此收据包含有关购买的各种信息。您可以将此收据存储在数据库中。在此收据中,还有一个名为" original_transaciton_identifier(OTI)"的字段,此标识符表示从该Apple ID进行的购买的唯一ID。将此唯一标识符存储在数据库中,与先发送它的用户ID一起存储。
现在,如果用户ID A向您发送OTI 11,则将其存储在您的数据库中,防止用户A.当用户B登录并尝试恢复购买时,将更新后的收据发送到您的服务器,从中取出OTI收据,将其与存储在您的数据库中的OTI进行比较,如果您没有找到任何内容,那么这意味着它是一个新的购买,否则您知道此购买属于谁,您可以将其传达给用户B,这与某些人相关联其他用户,尝试使用新的iTunes帐户进行购买。