2017-10-08 36 views
9

Tôi gặp lỗi Uncaught TypeError: __WEBPACK_IMPORTED_MODULE_0_firebase__.firestore is not a function khi cố gắng khởi tạo Cloud Firestore. Tôi đã cài đặt firebase với npm install firebase --save-dev trước đó.firebase.firestore() không phải là chức năng khi cố gắng khởi tạo Cloud Firestore

import * as firebase from 'firebase'; 
import router from '../router'; 

const config = { 
     apiKey: "a", 
     authDomain: "a", 
     databaseURL: "a", 
     projectId: "a", 
     storageBucket: "a", 
     messagingSenderId: "a" 
}; 
if(!firebase.apps.length){ 
    firebase.initializeApp(config); 
    let firestore = firebase.firestore(); 
} 
+0

Tại sao bạn đã lưu phụ thuộc firebase dưới dạng phụ thuộc * dev *? – Phil

+0

Ngoài ra, bạn cần đảm bảo rằng bạn có phiên bản 4.5.0 khá gần đây. Kiểm tra 'package.json' của bạn và chắc chắn rằng bạn đã cài đặt đúng phiên bản – Phil

+0

Tôi đã gỡ cài đặt firebase và cài đặt phiên bản mới với' npm install --save firebase @ 4.5.0' nhưng không thay đổi bất cứ điều gì:/@Phil – jsrbn

Trả lời

0

Để sử dụng chức năng Firestore đám mây trên Node.js bạn nên sử dụng admin.firestore() thay vì admin.database(). Ngoài ra, bạn nên chắc chắn rằng mô-đun của mình firebase-admin trên package.json là tối đa 5.4.1 hoặc cao hơn. Trông như một cái gì đó như:

{ 
    "name": "functions", 
    "description": "Cloud Functions for Firebase", 
    "dependencies": { 
    "firebase-admin": "^5.4.1", 
    "firebase-functions": "^0.7.0" 
    } 
} 
+5

Câu hỏi không làm rõ điều đó nhưng nó liên quan đến ứng dụng web của khách hàng chứ không phải ứng dụng máy chủ Node. – riper

2

cập nhật căn cứ hỏa lực

npm install [email protected] --save 

thêm cả căn cứ hỏa lực và FireStore

const firebase = require("firebase"); 
// Required for side-effects 
require("firebase/firestore"); 

khởi

firebase.initializeApp({ 
    apiKey: '### FIREBASE API KEY ###', 
    authDomain: '### FIREBASE AUTH DOMAIN ###', 
    projectId: '### CLOUD FIRESTORE PROJECT ID ###' 
}); 

// Initialize Cloud Firestore through Firebase 
var db = firebase.firestore(); 

nguồn: https://firebase.google.com/docs/firestore/quickstart?authuser=0

0

bước:

  1. NPM cài đặt [email protected] --save

  2. nhập khẩu sau:

    import * as firebase from 'firebase'; 
    import 'firebase/auth'; 
    import 'firebase/database'; 
    import 'firebase/firestore'; 
    
  3. tuyên bố các biến toàn cầu

    export const environment = { 
        dev: { 
         apiKey: 'something....', 
         authDomain: 'something...', 
         databaseURL: 'something...', 
         projectId: 'something...', 
         storageBucket: 'something...', 
         messagingSenderId: 'something...' 
        } 
    }; 
    
    mFirestore: firebase.firestore.Firestore = null; 
    mDatabase: firebase.database.Database = null; 
    mAuth: firebase.auth.Auth = null; 
    mApp: firebase.app.App = null; 
    
  4. trên một số chức năng/constructor, gọi hàm này

    initializeDatabases() { 
        this.mApp = firebase.initializeApp(environment.dev, 'development'); 
        this.mAuth = this.mApp.auth(); 
        this.mDatabase = this.mApp.database(); 
        this.mFirestore = this.mApp.firestore(); 
        // use console.log(...) to see if they are initialized correctly 
        // you can use multiple databases like this, just use another set of 4 variables with different config/options 
    } 
    
  5. Sau đó sử dụng như thế này:

    readData() { 
        var doc = this.mFirestore.doc('...some path....'); 
        doc.get().then((data) => { 
          // do your tasks here 
        }); 
    } 
    

    Lưu ý: Tôi sử dụng này trên một Ionic 2 App có sử dụng Angular2 (& nguyên cảo).

Các vấn đề liên quan