菜鸟教程小白 发表于 2022-12-11 19:39:44

使用 Twitter 凭据登录 Firebase 身份验证的 iOS 错误


                                            <p><p>我有一个支持 Twitter 登录的 iOS Firebase 应用,但有时 <code>signIn(with: credential</code> 调用会随机失败,我不知道为什么。</p>

<p>首先,用户使用 Twitter 登录(永远不会失败),然后我使用 Twittersession 获取凭据,然后我使用这些凭据登录 Firebase,但有时会失败。 </p>

<p>这是完整的代码</p>

<pre><code>func twitterLogin(_ done:@escaping (_ user: FIRUser?, _ err: Error?) -&gt; 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)
      })
    }
}
</code></pre>

<p>这是我收到的确切错误消息。 </p>

<pre><code>UserInfo={NSUnderlyingError=0x600000442c10 {Error Domain=FIRAuthInternalErrorDomain Code=3 &#34;(null)&#34; UserInfo={FIRAuthErrorUserInfoDeserializedResponseKey={
code = 400;
errors =   (
            {
      domain = global;
      message = &#34;Network error while to fetch VERIFY_CREDENTIAL from TWITTER.&#34;;
      reason = invalid;
    }
);
message = &#34;Network error while to fetch VERIFY_CREDENTIAL from TWITTER.&#34;;
}}}, error_name=ERROR_INTERNAL_ERROR, NSLocalizedDescription=An internal error has occurred, print and inspect the error details for more information.})
</code></pre>

<p>我尝试专门搜索我收到的错误消息<strong>“从 TWITTER 获取 VERIFY_CREDENTIAL 时出现网络错误。”</strong>但我找不到任何解决方案。我发现了一些我认为是日文的帖子,但我无法理解他们的解决方案。 </p>

<p>我什至在这里查看了 Firebases iOS Auth 错误
<a href="https://firebase.google.com/docs/auth/ios/errors" rel="noreferrer noopener nofollow">https://firebase.google.com/docs/auth/ios/errors</a>
但是错误键 <strong>FIRAuthErrorUserInfoDeserializedResponseKey</strong> 甚至没有被列为 <code>signInWithCredential:completion:</code></p> 的可能错误</p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我看到了同样的错误。 codepen 中的示例:</p>

<p> <a href="https://codepen.io/mosse/pen/KmGMap" rel="noreferrer noopener nofollow">https://codepen.io/mosse/pen/KmGMap</a> </p>

<p></p><div class="snippet"data-lang="js"data-hide="false"data-console="true"data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;button class=&#34;login&#34;&gt;login&lt;/button&gt;

&lt;script src=&#34;https://www.gstatic.com/firebasejs/4.0.0/firebase.js&#34;&gt;&lt;/script&gt;
&lt;script&gt;
var config = {
    apiKey: &#34;AIzaSyDfJ5KuDofcZpahzl4H3XTl4f6R65gUyrQ&#34;,
    authDomain: &#34;authtest-3a944.firebaseapp.com&#34;,
    projectId: &#34;authtest-3a944&#34;,
};
firebase.initializeApp(config);
&lt;/script&gt;
&lt;script src=&#34;https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js&#34;&gt;&lt;/script&gt;
&lt;script&gt;
$(document).ready(function(){
    $(&#34;.login&#34;).click(function(){
      var providerObj = new firebase.auth.TwitterAuthProvider();
      firebase.auth().signInWithPopup(providerObj)
              .then(result =&gt; {
                      console.log(&#39;success&#39;)
                      console.log(result.user)
              })
              .catch( err =&gt; {
              console.log(&#39;failure&#39;)
              console.log(err.message)
      })
    });
});
&lt;/script&gt;</code></pre>

                                                <p style="font-size: 20px;">关于使用 Twitter 凭据登录 Firebase 身份验证的 iOS 错误,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/43966338/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/43966338/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: 使用 Twitter 凭据登录 Firebase 身份验证的 iOS 错误