swift - iOS 中的 Firebase 身份验证管理

标签 swift firebase firebase-realtime-database firebase-authentication

我正在使用 swift 在 ios 中使用 firebase。登录应用程序后,我正在从我的 firebase 数据库获取数据,这很好。现在,如果我在不注销的情况下关闭应用程序并在 30 分钟或大约一个小时后重新运行,我可以看到我的用户已登录,但数据不是来自数据库。当我注销并再次登录后,数据就会显示出来。 以下是我的代码,用于检查用户是否登录,然后执行获取数据的操作。

if Auth.auth().currentUser?.uid == nil{

        print("Logout call")
        perform(#selector(handleLogout), with: nil, afterDelay: 0)
    }else{
        print("User Logged In")
        fethUser()
    }

运行应用程序一段时间后,我可以看到“用户已登录”消息,但未获取数据。 我认为这是由于 session 或 token 超时而发生的。如果是这种情况,那么我如何在我的应用程序上保留登录信息?就像 paytm 或其他应用程序所做的那样,它们不需要每次我们使用应用程序时都登录。

如果发帖有任何问题,请告诉我。预先感谢您。

最佳答案

Firebase token 会在一小时左右后被禁用。您需要启用 token 服务 API 以允许在 token 过期后刷新 token 。前往https://console.developers.google.com/ ,点击“启用API和服务”,搜索Token Service API并启用它。 如果您希望您的应用程序执行自动登录,您可以使用 KeychainAccess https://github.com/kishikawakatsumi/KeychainAccess 。因此,用户无需在每次启动应用程序时都登录。

关于swift - iOS 中的 Firebase 身份验证管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49300178/

相关文章:

arrays - 接近 'How many items do you have selected' 类型计数器的最佳方法是什么?

swift - Realm :Swift 2 中的变量查询

ios - 使用 XCTest UI 测试确定应用程序是否已退出

javascript - 从 Firebase 功能使用 Cloud SQL 代理

ios - 无尽的背景 Sprite 套件

ios - 使用 Swift4 从 Firebase 读取数据 - 有 childByAutoId 上层节点

javascript - Firebase POST 自定义 ID

java - 检查 firebase child 是否具有特定值

javascript - React 不会从 firebase 渲染数组值,并且数组的长度为 0,尽管控制台上有该值

java - 如何在 firebase 中添加具有不同父级的 "price"节点的所有值