gpt4 book ai didi

firebase - Facebook 在 React Native 错误 400 中使用 Firebase 登录

转载 作者:行者123 更新时间:2023-12-02 04:35:01 25 4
gpt4 key购买 nike

我无法使用他在 RN 中的 Facebook 凭据在 Firebase 中注册用户。 Facebook 和 Firebase 应用程序设置正确,因为一切都在 Swift 中按预期工作。 OAuth 重定向 URI 也已正确设置。

但是,当我尝试从 RN 执行相同的过程时,它失败了。我的设置如下,当用户点击我的登录按钮时,我调用 FB 的 LoginManager.logInWithReadPermissions(['public_profile', 'email']) 成功后我调用 FirebaseManager 的(这是我用于管理 Firebase 的自定义类)signUpWithFacebook()。我正确获得了 FB 访问 token ,并且可以看到已创建凭证对象。

但是,Firebase 总是返回错误:

{"error":{"errors":[{"domain":"global","reason":"invalid","message":"A system error has occurred"}],"code":400,"message":"A system error has occurred"}}

FirebaseManager 看起来像这样:

import { AsyncStorage, NativeModules } from "react-native";
import * as firebase from 'firebase';

const firebaseConfig = {
apiKey: "key",
authDomain: "domain",
databaseURL: "db_url",
projectId: "project_id",
storageBucket: "storage_bucket"
};
const firebaseApp = firebase.initializeApp(firebaseConfig);

const FBSDK = require('react-native-fbsdk');
const {
AccessToken
} = FBSDK;

export default class FirebaseManager {

constructor() {
// Some logic...
}

signUpWithFacebook() {
AccessToken.getCurrentAccessToken().then((data) => {
let accessToken = data.accessToken
console.log('FB accessToken: ' + accessToken)

const provider = new firebase.auth.FacebookAuthProvider();
const credential = provider.credential(accessToken);
console.log('FB credential: ' + credential)

firebase.auth().signInWithCredential(credential)
.then()
.catch((error) => {
console.log('Failed to sign in Firebase with Facebook. ' + error)
})
})
}
}

我还想指出,Firebase 的匿名和电子邮件/密码身份验证工作没有问题。

目前我的解决方法是从 Swift 登录 Facebook 并使用桥和 RN 的 NativeModules 返回 RN 中的用户对象。

关于我的项目的更多信息:

react-native: 0.44.2

firebase: 4.0.0

react-native-fbsdk: 0.6.0

如有任何帮助,我们将不胜感激!

最佳答案

可能是一个长期的尝试,但这看起来与 firebase JS SDK 中的一个问题非常相似。解决方案是不创建 FacebookAuthProvider 的实例,方法是更改​​以下行:

const provider = new firebase.auth.FacebookAuthProvider();
const credential = provider.credential(accessToken);

为此:

var credential = firebase.auth.FacebookAuthProvider.credential(accessToken);

关于firebase - Facebook 在 React Native 错误 400 中使用 Firebase 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44374934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com