我应该将 Firebase 凭据存储在 iCloud 中吗?

Posted

技术标签:

【中文标题】我应该将 Firebase 凭据存储在 iCloud 中吗?【英文标题】:Should I store Firebase credentials in iCloud? 【发布时间】:2019-07-17 12:26:38 【问题描述】:

TL/DR:我们在应用中使用 Firebase,我们希望在用户的不同 ios 设备之间同步 Firebase 凭据。为此,我们正在考虑将凭据保存在 iCloud 中。这似乎有点不寻常,因为大多数应用程序都使用 iCloud 或 Firebase 作为其无服务器后端。 这是一种可行的方法吗?有什么特别的缺点吗?

长篇大论:

我们正在设计一个 Firebase 应用,它会在用户登录后立即在 Firebase 中透明地创建一个用户帐户。用户不会注意到已登录。我们只是生成一个随机邮件地址,例如 0fc7b18ea7e@my-app。 com,以及随机密码,并将这些凭据存储在用户的设备上(我们称这些为“匿名帐户”)。

稍后,用户可以选择在 GUI 中创建一个帐户,此时我们只需将邮件地址和密码更改为用户输入的凭据即可。这样,用户的帐户就变成了一个非匿名帐户。

现在我们要在用户的设备之间同步凭据。假设用户有 iPad 和 iPhone,他们第一次在 iPhone 上启动应用程序。为他们创建了一个匿名帐户,他们开始使用该应用程序。稍后,他们在 iPad 上启动应用程序。我们希望他们登录到与 iPhone 相同的帐户,即使他们没有指定任何凭据。

为什么我们有这种身份验证设计?对于我们的应用来说,用户可以直接打开应用并立即开始,而无需注册任何内容,这一点至关重要。此外,使用多台设备的用户使用同一个帐户也很重要。对于匿名用户,这只有在设备之间以某种方式共享凭据时才有效。

【问题讨论】:

您是否考虑将anonymous authentication 用于初始帐户?这样您就不必存储凭据了。 “我们希望他们登录到与 iPhone 相同的帐户,即使他们没有指定任何凭据。”如果他们没有以任何方式登录第二个帐户,您怎么知道他们是什么现有用户,或者他们是否甚至是现有用户? @FrankvanPuffelen 如果他们的凭据存储在他们的 iCloud 帐户中,我们就会知道他们的凭据。这就是整个想法:第一次登录会创建凭据并将它们放入 iCloud。然后,当用户在另一台设备上登录时,凭据已经存在,因为它们是通过 iCloud 共享的。 【参考方案1】:

iOS SDK 的这次更新似乎已经解决了:https://github.com/firebase/firebase-ios-sdk/pull/6924

【讨论】:

以上是关于我应该将 Firebase 凭据存储在 iCloud 中吗?的主要内容,如果未能解决你的问题,请参考以下文章

构建后如何在 Vue.js 项目中存储 Firebase 凭据(env_var)

我应该如何在 MySQL 数据库中存储 ftp 登录凭据?

如何存储firebase身份验证会话

使用服务帐户凭据模式的 Firebase 分发 android 应用程序的权限被拒绝

Firebase Push - 身份验证凭据无效

我应该将 google-services.json(来自 Firebase)添加到我的存储库吗?