firebase2.default.firestore 不是一个函数 - React Firebase

Posted

技术标签:

【中文标题】firebase2.default.firestore 不是一个函数 - React Firebase【英文标题】:firebase2.default.firestore is not a function - React Firebase 【发布时间】:2018-03-24 08:21:31 【问题描述】:

我正在尝试在我的 reactjs 应用中使用 firestore

当我从 firebase 配置对象调用 firestore 时。

上面写着

firebase2.default.firestore 不是函数

这里是代码

import firebase from 'firebase'

const config = 
  apiKey: "AIzaSxxxxxxqpUeqKXI",
    authDomain: "payxxxxxa1.firebaseapp.com",
    databaseURL: "https://payxxxxxxxa1.firebaseio.com",
    projectId: "payxxxxxxja1",
    storageBucket: "payxxxxxa1.appspot.com",
    messagingSenderId: "281xxxxxxxx576"


firebase.initializeApp(config)

export const fire = firebase
export const ref = firebase.database().ref()
export const firebaseAuth = firebase.auth
export const messaging = firebase.messaging();
export const db = firebase.firestore();

Firebase 版本是 4.5.0

npm list firebase > firebase@4.5.0

我做错了吗?

【问题讨论】:

我也看到了这个问题,按照你的建议去做并没有解决我的问题。 你能分享你的配置代码吗?也许在 pastebin 中? pastebin.com/Rgs9FVrZ 这是我的代码,与您的 tbh 相比,它看不出有什么问题... 在第二行添加require("firebase/firestore"); 好的,我没看到。非常感谢您澄清诺曼 【参考方案1】:

如果您使用的是官方的 firebase npm 包,那么您就是这样导入它的。

import firebase from 'firebase';
import 'firebase/firestore';

【讨论】:

【参考方案2】:

我通过导入多个库来修复它:firebase 和 firebase/firestore。这是因为 firebase 核心库本身并不包含 firestore 库。所以修复它的完整代码是:

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

【讨论】:

【参考方案3】:

ES6:

import '@firebase/firestore'

参考:https://www.npmjs.com/package/@firebase/firestore

【讨论】:

出于某种原因,这对我有用。我将导入更改为 import firebase from '@firebase/app'; import '@firebase/firestore';【参考方案4】:

我已经使用require('firebase/firestore')解决了这个问题

【讨论】:

以上是关于firebase2.default.firestore 不是一个函数 - React Firebase的主要内容,如果未能解决你的问题,请参考以下文章