簡體   English   中英

email 無法獲取 react-native-twitter-signin 庫中的錯誤

[英]email COULD NOT FETCH error in react-native-twitter-signin library

在使用 react-native-twitter-signin 在 react native 中實現 twitter 登錄時,我已按照文檔中的所有步驟進行操作,但在 then() 方法中沒有收到用戶 object。 它在 catch 塊中引發錯誤。 錯誤如下

錯誤:{ NativeMap: {"email":"COULD_NOT_FETCH","userName":"osamaaer05","userID":"13540882326114024","name":"osamaeer05","authTokenSecret":"nymvUWPAnBnvvhfhbQ1IU1ojETUuJWvq01VCiLOZDn9","authToken": “1354088232611414024-425rd6PMkdQVk1YrP1gAiiBuwpc9”} }

If email is not required replace the function in node_modules/@react-native-twitter-signin/twitter-signin/android/src/main/java/com/rntwittersignin/twittersignin/TwitterSigninModule.java

@Override
 public void failure(TwitterException exception) {
 map.putString("email", "");
 promise.resolve(map);
}

我使用react-native-twitter-signin/twitter-signin signin 使用firebase進行身份驗證時遇到了同樣的問題。

與您的錯誤類似,我的錯誤還包含成功登錄的所有必要信息(電子郵件除外)。 所以,我認為我們可以使用錯誤進行身份驗證。

事實證明,firebase 為 JS 發布的官方文檔中也提出了這一點。 他們提供了一種名為credentialFromError()的方法,該方法也可用於react-native

有了這些信息,我想出了以下代碼,讓我可以使用 twitter 登錄:

import auth from '@react-native-firebase/auth';
import RNTwitterSignIn from '@react-native-twitter-signin/twitter-signin';


RNTwitterSignIn.init('XXX_API_KEY_XXX', 'XXX_API_SECRET_XXX').then(() =>
    console.log('Twitter SDK initialized'),
);

async function onTwitterButtonPress() {

    var twitterCredential;

    try {
        // Perform the login request
        const { authToken, authTokenSecret } = await RNTwitterSignIn.logIn();

        // Create a Twitter credential with the tokens
        twitterCredential = auth.TwitterAuthProvider.credential(authToken, authTokenSecret);

    } catch (e) {
        // Create a Twitter credential with the error       
        twitterCredential = auth.TwitterAuthProvider.credentialFromError(e);
    }

    return auth().signInWithCredential(twitterCredential);
}

PS:不確定問題是否與firebase有關,但我認為錯誤並不意味着身份驗證/登錄失敗仍然是一個有用的見解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM