React Native 重复超时将集合写入 firestore@firebase/firestore:Firestore (8.4.2):连接 WebChannel 传输错误

2024-01-23

我正在尝试将用户从 React Native 应用程序写入 Firestore 集合。用户在身份验证下在 firebase 中创建,但随后挂在 firebase.firestore().collection('users').doc(uid).set('data') 上。

几分钟后,我收到警告:“firestore@firebase/firestore:Firestore (8.4.2):连接 WebChannel 传输错误”

我将继续每隔几分钟收到此警告,有时在 20 分钟左右后,集合可能会写入 firestore。

github 和 SO 上有一些与此问题相关的问题,但没有一个得到解决。有人遇到过这个吗? 我的代码

import '@firebase/auth';
import '@firebase/firestore';

const firebaseConfig = {
    apiKey: "xxxxxxxxxxxxxxxxxxx",
    authDomain: "xxxxxxxxxxxx",
    projectId: "xxxxxxxxx",
    storageBucket: "xxxxxxxxxxxxxxx",
    messagingSenderId: "xxxxxxxxxxxxxx",
    appId: "xxxxxxxxxxxx",
    measurementId: "xxxxxxxxxxxxx"
};

if (!firebase.apps.length) {
    firebase.initializeApp(firebaseConfig);
}

export { firebase };


import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { StyleSheet, Text, View, Button } from 'react-native';
import { firebase } from '../src/firebase'

const handleSubmit = (email,password) => {
  console.log(email + password);
  firebase
      .auth()
      .createUserWithEmailAndPassword(email, password)
      .then((response) => {
          const uid = response.user.uid
          const data = {
              id: uid,
              email
          };
          const usersRef = firebase.firestore().collection('users')
          usersRef
              .doc(uid)
              .set(data)
              .then(() => {
                  console.log('please get here')
              })
              .catch((error) => {
                console.log('error get here')
              });
      })
      .catch((error) => {
        console.log('outer error get here ' + error)
  });
}

export default function App() {
  return (
    <View style={styles.container}>
      <Button
        onPress={handleSubmit('[email protected] /cdn-cgi/l/email-protection', 'pass123')}
        title='test'
      />
      <StatusBar style="auto" />
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});

于是我在firebase github上问了这个问题,参见:https://github.com/firebase/firebase-js-sdk/issues/4859 https://github.com/firebase/firebase-js-sdk/issues/4859

他们提供的解决方案对我有用,即在初始化 firebase 时添加以下代码。

firebase.initializeApp(firebaseConfig);
firebase.firestore().settings({ experimentalForceLongPolling: true });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native 重复超时将集合写入 firestore@firebase/firestore:Firestore (8.4.2):连接 WebChannel 传输错误 的相关文章

随机推荐