【问题标题】:Cannot read property 'ensureClientConfigured' of null in Firebase Firestore - ReactJS无法在 Firebase Firestore 中读取 null 的属性“ensureClientConfigured” - ReactJS
【发布时间】:2019-10-24 17:17:32
【问题描述】:

我在我的 react 应用程序中使用 redux 和 redux-saga,我有这个 saga 用于用户注册。

function* registerWithPassword(user: UserInput) {
  try {
    const userData: firebase.auth.UserCredential = yield call(
      registerUser,
      user.email,
      user.password
    );
    if (userData === null || userData.user === null) {
      yield put(
        authFailureAction.failure({
          register: 'Unable to register user',
        })
      );
    } else {
      const firestore = firebase.firestore();
      const userDoc: firestore.DocumentReference = yield call(firestore.doc, `${USERS}/${userData.user.uid}`);
      yield call(
        userDoc.set,
        { labels: [], pinnedNotes: [], name: user.name },
        { merge: true }
      );
      yield call(console.log, 'Updated doc')
      yield put(firebaseUserAction.success(userData));
    }
  } catch (e) {
    yield put(
      authFailureAction.failure({
        register: e.message || 'Unable to register user',
      })
    );
  }
}

这些动作只是构造一个动作以分发给 redux 的工具。

我是先注册用户,然后在firestore中添加一些数据。

当 Firestore 尝试将数据写入 Firebase 时,我不断收到此错误 Cannot read property 'ensureClientConfigured' of null firebase.

我尝试在 Google 中搜索此内容,令我惊讶的是,没有人收到此错误。

这是我的 Firebase 配置文件

import * as firebase from 'firebase';
import 'firebase/firestore';

const config = {
  apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
  authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
  databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,
  projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
  storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
  messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
};

if (firebase.apps.length === 0) {
  firebase.initializeApp(config);
}

export default firebase;

【问题讨论】:

    标签: reactjs firebase google-cloud-firestore


    【解决方案1】:

    我的假设是 Cannot read property 'ensureClientConfigured' of null firebase 发生是因为应用程序无法识别您的 Firebase 的初始化。

    我猜,你应该在你的 firebase 配置文件中创建一个变量:

    export const firestore = firebase.firestore()
    

    然后将此变量导入您的函数文件。并根据新的更新修改你的函数文件。

    如果这有帮助,请告诉我。

    【讨论】:

    • 是的。我浏览了源代码,这似乎是 firebase 无法工作的唯一原因。但是后来我尝试了这个,它仍然无法解决任何问题。我的应用程序中也有 Firebase Auth。如果firestore的firebase实例为null,它也应该是Auth,但Auth完美运行。
    • 您能否提供完整版本的文件,其中您的 redux-saga 功能包括所有导入?因为我无法用这么多的信息给你一个完整的答案
    猜你喜欢
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    相关资源
    最近更新 更多