与Firebase React Native中的Authenitcaiton用户创建不一致



我正试图将Firebase JS SDK集成到一个托管的Expo React Native项目中。我通过npm I Firebase安装了Firebase,我使用的是最新版本。

问题是,每当我通过Android模拟器启动expo应用程序时,当我将输入从formik传递到createUserWithEmailAndPassword时,首先会收到auth/network请求失败的错误消息,但在点击注册按钮几次(超过10次(后,它不知怎的起作用了。然后将用户添加到Firebase控制台。在这之后,它完美地工作,我可以创建多个帐户,而不会失败。但是,如果我重新启动应用程序,那么我必须重复上面的步骤。

我已经将主要的firebase函数划分为一个单独的文件,并将其导入

导出的文件:

import { initializeApp } from 'firebase/app';
import { getAuth, createUserWithEmailAndPassword } from 'firebase/auth'; 
import firebaseConfig from './app/config/Firebase/firebaseConfig';
let myApp = initializeApp(firebaseConfig);
const auth = getAuth(myApp);
export function signupEmail(email, password) {
console.log(email, password);
createUserWithEmailAndPassword(auth, email, password)                    
.then((userCredential) => {
const user = userCredential.user;
console.log('Signed in');
})
.catch((error) => {
const errorCode = error.code;
const errorMessage = error.message;
});
}

注册文件的主要部分:

function handleSignup(values) {
signupEmail(values.email, values.password);
}
<SubmitButton
style={styles.signupButton}
title='SignUp'
onPress={handleSubmit}
/>
onSubmit={(values) => [handleSignup(values)]}

按下注册后,我会打印出电子邮件和密码,就像在注册电子邮件功能中一样。无论最终是否成功,我都会收到电子邮件和密码消息,我认为这意味着问题不在于formik,因为数据被正确地传递到了signupEmail功能。不过,从这里开始,它经常处于空闲状态,有时会持续10秒以上,然后才会出现网络错误消息。我认为,成功总是立竿见影的。

我还有一个print out auth.currentUser按钮,它在进程加载时返回null,如果成功,则注销预期的对象。不过,有时它会将对象注销到一个帐户,而我在当前会话中没有添加该帐户的电子邮件。我还添加了一个Sign-Out函数,它将auth.currentUser对象变成null。

我不知道从这里到哪里去,如果有任何帮助,我将不胜感激!

这个问题似乎与Android模拟器有关,Expo Go在我的手机上运行时没有问题。

最新更新