【发布时间】:2019-03-05 22:36:34
【问题描述】:
我正在使用官方 SDK 在 iOS 应用中实现 Firebase(准确地说是身份验证、实时数据库和 Firebase)。用户作为匿名用户进行身份验证,其余的取决于成功的身份验证。
问题是我在测试“全新安装”场景时遇到了问题,因为即使在卸载应用程序或以编程方式从 /Documents 文件夹中删除 Firebase 文件后,SDK 似乎也分配了相同的 UID(用户 ID)。
这给我带来了问题,因为之前安装的设备与新设备的行为不同,因此很难调试“新下载”应用程序的启动过程。
使用 Firebase 控制台删除用户也无济于事,因为只要令牌有效,用户仍然可以保持访问权限,而且即使在删除并重新安装应用后,令牌似乎仍然有效。
关于如何处理该问题的任何想法或指导?
【问题讨论】:
-
您有确切的复制步骤和代码要显示吗?用户 ID 不应在应用卸载后继续存在。永远不应重新分配用户 ID。此外,在删除用户帐户后,令牌在上次刷新后的一个小时内不应继续工作。
-
没什么奇特的,我使用的是 XCode 10,设备在 iOS12 上,并且我为 SDK 安装了最新的 Pod。该应用程序主要使用 SpriteKit 构建,当加载场景时,会按照 Firebase SDK 中的说明执行匿名用户身份验证。一段时间后令牌会失效,但重新安装后会分配相同的 UID,就好像该应用从未被删除一样。
-
在新设备上,Auth.auth().currentUser?.uid 在设备通过身份验证之前为零,但在重新安装时,即使根本没有互联网连接,它也会返回相同的 UID。更新 pod 后,我能够在同一设备上获得新的 UID,我认为是在清理一些非必要文件以恢复空间之后。
标签: ios swift firebase firebase-authentication