使用 Firebase 身份验证响应本机
React Native with Firebase Authentication
我知道 会抛出错误,因为显然这不是打开新身份验证 window 的正确环境。此外,Email/Password auth 也应该失败,因为它依赖于 React Native 不支持的 LocalStorage。是在 React Native 中实现任何类型的 Firebase 身份验证以创建 Swift/ObjC 桥然后真的只使用 Swift/ObjC Firebase 身份验证库的最佳方法吗?如果是这样,有没有人有这样做的例子?
更新: 从 Firebase 3.x 开始,Firebase 身份验证将在 React Native 应用程序中正确保留用户。
啊,我没有意识到 React Native 没有 polyfill localstorage。因此,如果我理解你的问题是正确的,email/password 使用 Firebase 进行身份验证在 React Native 中工作正常,只是它不会在应用程序启动时持续存在,因此用户每次都必须登录。
一种可能的解决方案是您自己手动保留身份验证令牌。类似于:
- 照常调用 authWithPassword(...)。
- 在 onComplete 处理程序中,检索 authData.authToken 并将其存储在本地(例如使用 AsyncStorage)。
- 下次启动应用程序时,从存储中检索身份验证令牌并调用 authWithCustomToken(authToken, ...)。
我们将考虑让 Firebase 自动执行此操作,但要在不影响 Firebase 的其他使用者(除了 React)的情况下执行此操作有点棘手。不过,我已将其添加到我们的内部错误数据库中,我们将看看我们能想出什么。当我们有解决方案时,我们会更新这个答案。谢谢!
我知道
更新: 从 Firebase 3.x 开始,Firebase 身份验证将在 React Native 应用程序中正确保留用户。
啊,我没有意识到 React Native 没有 polyfill localstorage。因此,如果我理解你的问题是正确的,email/password 使用 Firebase 进行身份验证在 React Native 中工作正常,只是它不会在应用程序启动时持续存在,因此用户每次都必须登录。
一种可能的解决方案是您自己手动保留身份验证令牌。类似于:
- 照常调用 authWithPassword(...)。
- 在 onComplete 处理程序中,检索 authData.authToken 并将其存储在本地(例如使用 AsyncStorage)。
- 下次启动应用程序时,从存储中检索身份验证令牌并调用 authWithCustomToken(authToken, ...)。
我们将考虑让 Firebase 自动执行此操作,但要在不影响 Firebase 的其他使用者(除了 React)的情况下执行此操作有点棘手。不过,我已将其添加到我们的内部错误数据库中,我们将看看我们能想出什么。当我们有解决方案时,我们会更新这个答案。谢谢!