(iOS)Firestore文档snapshotListener在登录后1小时停止工作



我实现了firebase/auth,并使用从API获得的自定义令牌来登录firebase。

Auth.auth().signIn(withCustomToken: result.data.token) { (authResult, error) in
completion(authResult != nil && error == nil)
} 

然后我使用snapshotListener订阅我的文档。

guard let user = Auth.auth().currentUser else {
return
}
listListener = firestoreDB.collection(shoppingListCollectionName).document(user.uid).addSnapshotListener { (documentSnapshot, _) in ....

听众工作了大约1个小时,然后就停止了工作。在日志中我得到:

流错误:"未经身份验证:身份验证缺失或无效。">

然后我收到了垃圾邮件:

流错误:'未知:发生内部错误,请打印并检查错误详细信息以获取详细信息。'

我对自定义令牌不太了解,因为您正在使用自定义令牌进行身份验证。但如果我们要进行firebase身份验证,firebase发布的id令牌的使用寿命最长为一小时。之后,firebase将使用刷新令牌发布一个新的id令牌。我认为你的身份证已经过期,不会再发行了。

Firebase ID令牌只持续一个小时。当您使用自定义令牌时,如果您希望保持身份验证超过一小时,则需要使用Firebase Auth REST API。因此,您必须发出HTTP请求,才能从自定义令牌中获取ID令牌和刷新令牌(请查看Exchange自定义令牌中的ID和刷新令牌部分(。然后,您只需要在ID令牌每次过期时刷新它(请检查Exchange的ID令牌刷新部分(。

最新更新