我有一個iOS Firebase應用程序,支持Twitter登錄,但偶爾signIn(with: credential
調用隨機失敗,我不明白爲什麼。iOS錯誤與Firebase Auth登錄使用Twitter憑據
首先用戶使用Twitter(永遠不會失敗)登錄,然後使用Twitter會話獲取憑據,然後使用這些憑據登錄Firebase,但有時會失敗。
下面是完整的代碼
func twitterLogin(_ done:@escaping (_ user: FIRUser?, _ err: Error?) -> Void) {
Twitter.sharedInstance().logIn() { session, error in
guard error == nil else {
done(nil, error)
return
}
let credential = FIRTwitterAuthProvider.credential(withToken: session!.authToken, secret: session!.authTokenSecret)
FIRAuth.auth()?.signIn(with: credential, completion: { (signUser, error) in
//User is signed in
// ERROR OCCURS HERE. ANY HELP WOULD BE GREATLY APPRECIATED
done(signUser, error)
})
}
}
這裏是我得到確切的錯誤信息。
UserInfo={NSUnderlyingError=0x600000442c10 {Error Domain=FIRAuthInternalErrorDomain Code=3 "(null)" UserInfo={FIRAuthErrorUserInfoDeserializedResponseKey={
code = 400;
errors = (
{
domain = global;
message = "Network error while to fetch VERIFY_CREDENTIAL from TWITTER.";
reason = invalid;
}
);
message = "Network error while to fetch VERIFY_CREDENTIAL from TWITTER.";
}}}, error_name=ERROR_INTERNAL_ERROR, NSLocalizedDescription=An internal error has occurred, print and inspect the error details for more information.})
我一直在努力,特別是搜索我得到錯誤信息「網絡錯誤而從TWITTER獲取VERIFY_CREDENTIAL。」但我找不到任何解決方案。我發現了一些我認爲是日文的帖子,但我無法理解他們的解決方案。
我甚至看了看這裏的iOS重火力驗證錯誤 https://firebase.google.com/docs/auth/ios/errors 但錯誤鍵FIRAuthErrorUserInfoDeserializedResponseKey甚至不列爲可能錯誤signInWithCredential:completion:
我在Web上使用Firebase時遇到了同樣的錯誤:「從TWITTER獲取VERIFY_CREDENTIAL時出現網絡錯誤。」它也只是「偶爾」發生,並且似乎對某些Twitter用戶比其他用戶多。我甚至嘗試實現我自己的auth後端函數,直接從Twitter獲取auth令牌和祕密,使用它們登錄,如下所示:var credentials = firebase.auth.TwitterAuthProvider.credential(token,secret); firebase.auth()。signInWithCredential(憑證);'但它沒有幫助。 – pejalo
現在使用Firebase至少2個月。 Firebase說這不是他們。 Twitter沒有迴應。其他使用Twitter Auth w Firebase的現有應用程序正常運行。與此同時,作爲一個不穩定但唯一的解決方法,我正在實施具有一定時間延遲的3重試邏輯。即使這樣,它也會清除大約50%的時間... – SteveSeow