source

화력 기지Cloud Firestore를 초기화하려고 할 때 firestore()가 기능하지 않습니다.

ittop 2023. 7. 16. 17:57
반응형

화력 기지Cloud Firestore를 초기화하려고 할 때 firestore()가 기능하지 않습니다.

Firebase Cloud Firestore를 초기화하려고 할 때 다음 오류가 발생했습니다.

발견되지 않은 유형 오류: WEBPACK_IMPORTED_MODULE_0_firebase입니다.firestore는 기능이 아닙니다.

저는 소방 기지를 설치했습니다.npm install firebase --save이전에.

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();
}

했습니다: 여러라이가수정습니다했져와를리러.firebase그리고.firebase/firestore그 이유는firebase코어 라이브러리에 firestore 라이브러리가 포함되어 있지 않습니다.

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

Firebase 버전 9를 사용하는 경우 대신 다음을 사용해야 합니다.

// v9 compat packages are API compatible with v8 code
import firebase from 'firebase/compat/app';
import 'firebase/compat/firestore';

다음은 버전 8에서 버전 9로 업그레이드하기 위한 링크입니다. https://firebase.google.com/docs/web/modular-upgrade .

호환 라이브러리는 향후 주요 SDK 버전(예: 버전 10 또는 버전 11)에서 완전히 제거될 임시 솔루션입니다.최종 목표는 호환 코드를 제거하고 버전 9 모듈식 코드만 앱에 유지하는 것입니다.

당분간은 호환 라이브러리를 활용할 수 있지만 앞으로는 호환에서 모듈러로 전환해야 합니다.

먼저 최신 버전의 Firebase가 있는지 확인합니다.

npm install firebase@4.12.0 --save

그런 다음 Firebase와 Firestore를 모두 추가합니다.

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

Firebase 앱 초기화:

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

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

출처: https://firebase.google.com/docs/firestore/quickstart?authuser=0

import { firebase } from '@firebase/app';
import '@firebase/firestore'

인증도 사용하는 경우

import '@firebase/auth';

저도 이것 때문에 잠시 고생했습니다.결국 제가 한 일은 꽤나 간단했습니다.

버전 9 이상의 경우 다음을 수행합니다.

import firebase from 'firebase/compat/app';
import 'firebase/compat/firestore';
import 'firebase/compat/auth';

// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries

// Your web app's Firebase configuration
const firebaseConfig = {
  apiKey: 
  authDomain: 
  projectId: 
  storageBucket: 
  messagingSenderId: 
  appId: 
};

// Initialize Firebase

const firebaseApp = firebase.initializeApp(firebaseConfig);
const db = firebaseApp.firestore;
const auth = firebaseApp.auth();


export { auth };
export default db; 

//cheers

이것이 Firestore에 Angular 앱을 배포할 때 동일한 문제에 직면한 사람에게 도움이 되기를 바랍니다.

Angular 8 프로젝트에서 Firestore에 배포할 때 동일한 오류가 발생했습니다.Angular Firestore Module을 추가하여 수정하였습니다.

App.module.ts는 다음과 같습니다.

...
import { AngularFireModule } from '@angular/fire';
import { AngularFirestore, AngularFirestoreModule } from '@angular/fire/firestore'; // << Note AngularFirestoreModule !!!
import { AngularFireDatabaseModule } from '@angular/fire/database';
...

imports: [
    BrowserModule,
    FormsModule,
    AngularFireModule.initializeApp(environment.firebaseConfig),
    AngularFirestoreModule,
    AngularFireDatabaseModule,
...

꾸러미json:

...
"dependencies": {
    "@angular/animations": "~8.2.2",
    "@angular/common": "~8.2.2",
    "@angular/compiler": "~8.2.2",
    "@angular/core": "~8.2.2",
    "@angular/fire": "^5.2.1",
    "@angular/forms": "~8.2.2",
    "@angular/platform-browser": "~8.2.2",
    "@angular/platform-browser-dynamic": "~8.2.2",
    "@angular/router": "~8.2.2",
    "ajv": "^6.10.2",
    "bootstrap-scss": "^4.3.1",
    "core-js": "^2.5.4",
    "firebase": "^6.4.0",
...

업데이트: 다른 호스팅 공급자에 배포했지만 도움이 되지 않았습니다.이 경우 기존의 파이어베이스 라이브러리를 추가하여 작동했습니다.

import { firestore } from 'firebase'; 

자격 증명을 사용하여 응용 프로그램의 Firebase 초기화를 위한 별도의 구성 요소를 생성할 수 있습니다.

소방대원.js

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

const firebaseConfig = {
            apiKey: "XXXX",
            authDomain: "XXXXX.firebaseapp.com",
            databaseURL: "https://XXXX-app-web.firebaseio.com",
            projectId: "XXXX",
            storageBucket: "XXXX-app-web.appspot.com",
            messagingSenderId: "XXXXXX",
            appId: "1:XXX:web:XXXX",
            measurementId: "G-XXXX"
        };

export default !firebase.apps.length 
  ? firebase.initializeApp(firebaseConfig).firestore()
  : firebase.app().firestore();

매번 초기화 방법을 호출할 필요가 없는 데이터베이스 작업을 처리해야 하는 경우, 이전에 만든 공통 구성 요소 방법을 사용할 수 있습니다.

import FirebaseContext from "./firebase-context";

export const getList = () => dispatch => {
    FirebaseContext.collection("Account")
        .get()
        .then(querySnapshot => {
            // success code
        }).catch(err => {
            // error code
        });
}

혹시라도, 당신의 코드가 마법에 걸려 있다면, 그리고.import firebase/firestore작동하지 않습니다. 직접 포함합니다.

import '@firebase/firestore/dist/esm/index';

만약 그것이 없다면, 다음과 같습니다.

npm install @firebase/firestore

문제는 화재 저장고를 가져오는 것이 아닙니다.

파이어베이스는 많은 특징을 가지고 있습니다.

아래 목록에서 구현할 항목을 CDN에서 가져오거나 가져와야 합니다.

enter image description here 공식적인 언급은 firebase-firestore.js를 로드하라고 합니다.

<script src="https://www.gstatic.com/firebasejs/7.19.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.19.0/firebase-firestore.js"></script>

만약 당신이 npm을 사용하고 싶다면, 여기.

npm install firebase@7.19.0 --save

URL은 여기에 있습니다.
https://firebase.google.com/docs/firestore/quickstart?authuser=0#set_up_your_development_environment

저는 같은 오류가 발생하여 공식 웹사이트를 팔로우하려고 했지만 작동하지 않았습니다.그리고 나서 저는 오류를 검색하여 이 게시물에 도착했습니다.

노력했습니다.

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

하지만, 그것은 나에게 효과가 없었지만 나는 덧붙였습니다./firebaseimport * as firebase from 'firebase/firebase';모든 것이 완벽하게 작동하고 있습니다.

이 기능은 다음과 함께 작동합니다.require:

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

이전 버전의 Firebase에서 업데이트하는 경우 이 문제에 대해 신경을 곤두세우고 있다면 시도해 보십시오.const Firebase = require('firebase/firebase')require('firebase/app')

제 경우에는 실수로 추가한 것이 문제였습니다.firebase-admin과 .firebase 내패지에 있는 package.json.그리고.firebase-admin우선하여 승인된 답변대로 수입을 추가한 후에도 여전히 동일한 오류가 발생했습니다.

중제 firebase-admin클라이언트 앱에서 문제를 해결했습니다.

참로고,firebase-admin하도록 되어 , 서버측관작모도설반계면된록동하리드에서로▁side,▁the,firebase패키지가 클라이언트 쪽 라이브러리입니다.

"firebase/firestore"에서 {getFirestore} 가져오기;

그냥 이것을 먹어보고 어떻게 되는지 보세요.

파이어스토어를 사용하려면 html 페이지 상단에 이 링크를 추가해야 합니다.

//After initializing firebase, in your main javascript page call...
var data = firebase.firestore();
<script src="https://www.gstatic.com/firebasejs/7.1.0/firebase-firestore.js"></script>
<script src="https://www.gstatic.com/firebasejs/6.2.3/firebase-storage.js"></script>

Angular 8에 대한 솔루션(2020년 1월 4일 기준):

  1. package-lock.json
  2. 려달을 합니다.npm install
  3. import AngularFirestoreModule from @angular/fire/firestore

Angular Firestore Module만 가져오면 됩니다.

// App.module.ts

import { AngularFireModule } from '@angular/fire';
import { AngularFirestore, AngularFirestoreModule } from '@angular/fire/firestore';
import { AngularFireDatabaseModule } from '@angular/fire/database';
imports: [
    AngularFireModule.initializeApp(environment.firebaseConfig),
    AngularFirestoreModule,
    AngularFireDatabaseModule
]

만약 당신이 나와 같고 타자기에 입력된 모든 것을 좋아한다면(참고로 그것이 목적입니다), 당신은 다음을 시도할 수 있습니다.

import * as firebase from "nativescript-plugin-firebase";
import { User, firestore } from "nativescript-plugin-firebase";

import * as firebaseapp from "nativescript-plugin-firebase/app";

따라서 다음과 같은 작업을 수행할 수 있습니다.

firebase.getCurrentUser().then((user: User) => { /* something */ });

const mycollection : firestore.CollectionReference = firebaseapp.firestore().collection("mycollection");

를 제거하기node_modules와 디토와께함리렉.package-lock.json 그고나달리기서리기달리를 실행합니다.npm install저를 위해 그것을.

https://github.com/angular/angularfire2/issues/1880

저도 예전에 같은 문제가 있었어요, 그건 버그였어요.Firebase 앱을 초기화한 .js 파일에서 Firestore를 가져와야 할 때(IDE에서 자동으로 실행됨...) Firebase에서 Firestore를 가져왔습니다.

운영 했을 때 이 가 발생했기 에 다음 을 Angular 8.2.14에 합니다.app.module.ts

        imports: [
        ...,
        AngularFireModule.initializeApp(environment.firebaseConfig),
        AngularFirestoreModule,
        AngularFireDatabaseModule,
...
      ],
      providers: [AngularFirestore, AngularFirestoreModule],

나는 등산으로 Github에서 유용한 코멘트를 찾았습니다.

그는 파이어베이스 분석이 브라우저와 함께 사용되어야 했기 때문에 Node.js에서 작동하지 않을 것이라고 언급했습니다(이것은 공식 문서에 언급되어 있습니다).

Native 스크립트에 Firestore 사용

플러그인 설치 중에 Firestore 사용 여부를 묻는 메시지가 표시됩니다.

업그레이드 중이고 다음과 같은 기능이 있습니다.firebase.nativescript.json프로젝트 루트에 있는 파일을 편집하고 다음을 추가합니다."firestore": true그럼 실행rm -rf platforms && rm -rf node_modules && npm i.

초기화앱.

기본적으로 iOS 및 Android의 Firestore는 오프라인 사용을 위해 로컬에서 데이터를 유지합니다(웹은 기본적으로 유지되지 않으며 일반 Firebase DB도 플랫폼에 없습니다).그 멋진 기능이 마음에 들지 않으면 통과할 수 있습니다.persist: falseinit 함수로 이동합니다.

initializeApp은 플러그인이 웹 API와 호환되도록 하기 위한 init의 별칭일 뿐입니다.

const firebase = require("nativescript-plugin-firebase/app");

firebase.initializeApp({
  persist: false
});

수집

'수집'은 Firestore 상호 작용의 근본입니다.데이터는 컬렉션 내의 '문서'로 저장됩니다.

 const citiesCollection = firebase.firestore().collection("cities");

출처: 네이티브 스크립트 플러그인 파이어베이스

클라이언트의 바닐라 자바스크립트에서 이 스크립트를 포함해야 작동합니다.

<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-firestore.js"></script>

기본 스니펫에 포함되어 있지 않기 때문에 Google에서 웹 사이트에 붙여넣기를 복사하도록 요청합니다.

출처: https://firebase.google.com/docs/firestore/quickstart?authuser=0

2022년 독자의 경우, 다음을 확인하십시오.firebase판본

현재 최신 버전은 9.x입니다.그것은 대부분의 유투브 가이드들과 거의 다르지 않습니다.

필요합니다firebase@8.xYouTube 가이드를 팔로우합니다.

npm uninstall firebase

npm install firebase@8.x

문서: https://firebase.google.com/docs/firestore/quickstart?authuser=0#web-version-9_1

Firebase 9 버전의 경우 사용할 수 있습니다.

import firebase from 'firebase/compat/app';
import "firebase/compat/firestore"; 

저는 수입품을 잘못 사용해서 문제가 발생했습니다.내 코드의 다른 곳에 파이어베이스 앱을 만듭니다.initializeApp이것은 서버 측 node.js 앱입니다.어쨌든 클라이언트에서 Firebase Admin을 사용할 수 없습니다.

틀렸습니다

import admin from 'firebase-admin';

this.stripeAccountColl = admin.firestore(this.firebaseApp).collection("StripeAccount");

맞아요.

import { getFirestore } from 'firebase-admin/firestore';

this.stripeAccountColl = getFirestore(this.firebaseApp).collection("StripeAccount");

제 경우 오류는 Firebase를 사용하는 파일을 가져오려고 했기 때문입니다."firebase/firestore"를 실제로 가져오기 전의 firestore()

사용하기Firestore사용해야 하는 Node.js의 클라우드 기능admin.firestore()대신에admin.database()또한 모듈을 확인해야 합니다.firebase-adminpackage.json에 달려 있습니다.5.4.1또는 그 이상.다음과 같은 것처럼 보입니다.

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

전자 웹팩을 사용하는 사람들을 위해 가지고 있는 것 같습니다.코드 미러 가져오기와 관련된 게시물에서 솔루션이 생성되었습니다.https://github.com/electron-userland/electron-webpack/issues/81

이것은 저에게 효과가 있었습니다.

// package.json
{
  //...
  "electronWebpack": {
    "whiteListedModules": [
      "firebase"
    ]   
  },
  //...
}

간단히 대답은 HTML 파일에 있는 스크립트를 연결하고 문제가 해결되었는지 확인하는 것입니다.

스크립트 src="https://www.gstatic.com/firebasejs/8.6.1/firebase-auth.js "

스크립트 src="https://www.gstatic.com/firebasejs/8.6.1/firebase-firestore.js

만약 그것이 당신의 문제를 해결하는 데 도움이 된다면 투표를 포기하세요.

언급URL : https://stackoverflow.com/questions/46636255/firebase-firestore-is-not-a-function-when-trying-to-initialize-cloud-firestore

반응형