javascript Firebase错误:错误(身份验证/网络请求失败

z4iuyo4d  于 2023-01-19  发布在  Java
关注(0)|答案(4)|浏览(880)

我试图建立一个电子商务应用程序与博览会和React Native,但我面临着一个网络错误,谷歌服务是活跃的设备(模拟器的Android和真实的的iPhone的IOS),我连接到我的谷歌帐户.
我也试着阻止页面重新加载,但没有任何改变。经过一番研究,我看到的是我不是唯一一个面对这个错误,我没有找到任何有价值的答案,所以我在这里结束。
下面是我代码:

const LoginScreen = () => {
  const [email, setEmail] = useState("");
  const [password, setPassword] = useState("");
  const [isSignedIn, setIsSignedIn] = useState(false);

  const handleCreateAccount = (e) => {
    e.preventDefault();
    createUserWithEmailAndPassword(authentification, email, password)
      .then((userCredential) => {
        console.log(userCredential);
      })
      .catch((error) => {
        console.log(error.message);
      });
  };

  const handleSignIn = (e) => {
    e.preventDefault();
    signWithEmailAndPassword(auth, email, password)
      .then((userCredential) => {
        console.log("Signed in!");
        const user = userCredential.user;
        console.log(user);
      })
      .catch((error) => {
        console.log(error);
        Alert.alert(error.message);
      });
  };

      <ScrollView
        contentContainerStyle={{
          flex: 1,
          width: "100%",
          height: "100%",
          alignItems: "center",
          justifyContent: "center",
        }}
      >
        <BlurView intensity={100}>
          <View style={styles.login}>
            <Image
              source={{ uri: profilePicture }}
              style={styles.profilePicture}
            />
            <Text style={{ fontSize: 17, fontWeight: "400", color: "white" }}>
              email
            </Text>
            <TextInput
              onChangeText={(text) => setEmail(text)}
              style={styles.input}
              placeholder="your@email.com"
              keyboardType="email-address"
              textContentType="emailAddress"
            />
            <Text style={{ fontSize: 17, fontWeight: "400", color: "white" }}>
              mot de passe
            </Text>
            <TextInput
              onChange={(text) => setPassword(text)}
              style={styles.input}
              placeholder="your password"
              secureTextEntry={true}
            />
            <Button
              onPress={handleSignIn}
              title="Connexion"
              buttonStyle={{
                width: 250,
                height: 40,
                borderRadius: 10,
                backgroundColor: "#00CFEB90",
                alignItems: "center",
                justifyContent: "center",
                marginVertical: 10,
                borderColor: "#fff",
                borderWidth: 2,
              }}
              type="outline"
              titleStyle={{ color: "white", fontSize: 17 }}
            />
            <Button
              onPress={handleCreateAccount}
              title="Créer un compte"
              buttonStyle={{
                width: 250,
                height: 40,
                borderRadius: 10,
                backgroundColor: "#6792F090",
                alignItems: "center",
                justifyContent: "center",
                marginVertical: 10,
                borderColor: "#fff",
                borderWidth: 2,
              }}
              type="outline"
              titleStyle={{ color: "white", fontSize: 17 }}
            />
          </View>
        </BlurView>
      </ScrollView>

所以我需要帮助。

klh5stk1

klh5stk11#

auth/network-request-failed错误尤其容易引起误解,因为它似乎有很多不同的原因,我在以下任何一种情况下都见过它:
1.SDK版本错误-要在本地设备上使用auth,您需要使用本地SDK,* 而不是 * JavaScript SDK。一些其他Firebase功能可以通过JS SDK工作,但auth不能,因为它有额外的安全层。请确保您使用的是正确的版本。
1.模拟器问题-您的模拟器无法访问Internet或DNS过时或系统时间不正确。请检查并确保您的设备可以访问Internet,设备上的时钟设置正确,并且项目的DNS可以解析。对于DNS,您可以尝试切换到Google的DNS(8.8.8.8)或Cloudflare的DNS(1.1.1.1),看看是否有帮助。
1.无Google Play服务-在Android上,身份验证要求在设备模拟器上安装Google Play服务。有关详细信息,请参阅此处。
1.Firebase设置不正确-确保您已遵循Expo和React Native Firebase入门说明中的每一项,特别是凭据部分,并确保Android上的软件包名称匹配,iOS上的软件包ID匹配。
如果以上方法都不起作用,请提供您得到的完整错误(检查React错误和设备级错误日志)。

avkwfej4

avkwfej42#

**以防它帮助某人。**我遇到了同样的问题,花了很多时间进行调查。事实证明,在我的情况下,这只是firebase层中的DNS问题。模拟器URL中的localhost没有解决。我将其替换为127.0.0.1,它工作正常。

mznpcxlj

mznpcxlj3#

这有助于避免错误:auth/network-request-failed,同时使用iOS模拟器。
如果您遵循文档并在调试模式下实现FirebaseAuth的模拟。https://firebase.google.com/docs/emulator-suite/
设置模拟器,然后运行:

firebase emulators:start

我应该在那之后工作,你可以在http://localhost:4000/auth上管理用户。

rhfm7lfc

rhfm7lfc4#

我在iOS模拟器上遇到了这个错误,对我来说,解决方案是通过运行sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder在我的Mac上闪存DNS
希望这能帮助到一些人

相关问题