首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ES6语法将Firebase Firestore导入创建-反应性-应用程序项目

如何使用ES6语法将Firebase Firestore导入创建-反应性-应用程序项目
EN

Stack Overflow用户
提问于 2018-02-25 20:40:26
回答 5查看 11.7K关注 0票数 8

我很难让Firestore与基本的创建-反应应用程序样板一起工作。有人有工作样本吗?

开始文档只解释了如何使用require语句设置它,而我希望使用ES6导入。

代码语言:javascript
复制
const firebase = require("firebase");
// Required for side-effects
require("firebase/firestore");

ES6与require('firebase/firestore')的等价性是什么

EN

回答 5

Stack Overflow用户

发布于 2018-02-25 21:47:58

我的麻烦在于我试图使用ES6语法。Firebase文档说要通过这样的方式访问它:

代码语言:javascript
复制
const firebase = require('firebase');
require('firebase/firestore');

而我想做这样的事:

代码语言:javascript
复制
import * as Firebase from 'firebase';
import Firestore from 'firebase/firestore';

这似乎不起作用,但确实是这样的:

代码语言:javascript
复制
import * as Firebase from 'firebase';
require('firebase/firestore');

我不喜欢把importrequire混在一起,但现在已经足够好了。

票数 3
EN

Stack Overflow用户

发布于 2018-04-26 19:25:35

两个月后,这件事对我很管用:

代码语言:javascript
复制
import * as firebase from 'firebase';
import '@firebase/firestore';

(它也可以不使用“@”。)

下面是我的package.json中的依赖项部分:

代码语言:javascript
复制
{
    ...
    "dependencies": {
        "@firebase/app": "^0.2.0",
        "@firebase/firestore": "^0.4.1",
        "firebase": "^4.13.1",
        "react": "^16.3.2",
        "react-dom": "^16.3.2",
        "react-router": "^4.2.0",
        "react-router-dom": "^4.2.2",
        "react-scripts": "1.1.4"
    },
    ...
}

我开始跟随关于firebase包的npmjs.com说明。在它的依赖项中,我找到了@firebase/消防站,并尝试按照以下说明进行导入:

代码语言:javascript
复制
import firebase from '@firebase/app';
import '@firebase/firestore'

然而,这种导入firebase的方法对我无效--我能够初始化我的应用程序,但是试图执行firebase.auth().signInWithPopup(provider)导致了一个错误:

WEBPACK_IMPORTED_MODULE___firebase_app.default.auth不是一个函数

票数 3
EN

Stack Overflow用户

发布于 2018-02-25 20:46:38

我为firebase创建了一个配置文件:

代码语言:javascript
复制
import * as firebase from 'firebase';

const config = { /* COPY THE ACTUAL CONFIG FROM FIREBASE CONSOLE */
    apiKey: "apiKey",
    authDomain: "domen.firebaseapp.com",
    databaseURL: "https://domen.firebaseio.com",
    projectId: "lavs-mercury",
    storageBucket: "",
    messagingSenderId: "id"
};

export default firebase.initializeApp(config);

然后将这个模块导入到我想要使用的文件中。例如:

代码语言:javascript
复制
import * as actionTypes from './actionTypes';
import firebase from "../../firebase-module";

export const logout = () => {
    firebase.auth().signOut();
    return {
        type: actionTypes.LOGOUT
    }
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48978232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档