Angular Firestore 数据库我总是遇到错误

问题描述 投票:0回答:1

我总是遇到以下错误:

src_app_ddd_module_ts.js:2 ERROR 错误:未捕获(承诺中):错误:您的 AppModule 中尚未提供 AngularFireModule (这可以手动或隐式使用 ProvideFirebaseApp) 或者您在 NgModule 之外调用 AngularFire 方法(不支持)。 错误:您的 AppModule 中尚未提供 AngularFireModule (这可以手动或隐式使用 ProvideFirebaseApp)或者您在 NgModule 之外调用 AngularFire 方法(不支持)。

在app.module.ts中

import { provideFirebaseApp, initializeApp, getApp } from '@angular/fire/app';
import { getFirestore, provideFirestore } from '@angular/fire/firestore';

imports: [

    provideFirebaseApp(() => initializeApp(environment.firebase)),
    provideFirestore(() => getFirestore(getApp()))

...
]

在组件中: 进口:

import { getFirestore, doc, getDoc } from '@angular/fire/firestore'
import { getApp } from '@angular/fire/app';

全局变量

db = getFirestore(getApp());

检索数据:

const docRef = doc(this.db, "docdata", "XdQH3683YpCeGhQ6MqO0"); const docSnap = 等待 getDoc(docRef); 让数据 = docSnap.data(); 控制台.log(数据);

我错过了什么? 检索数据的最佳方式是什么? Firestore 数据库中只有一个字段。

数据库是一个公共数据库,不需要身份验证,我只是为了测试目的而创建的。

提前谢谢您

angular cloud angularfire
1个回答
0
投票

您确实应该创建一个 firebase.service 或其他东西来处理这些请求,而不是直接在组件中执行它们。但是,您应该能够通过执行以下操作来使其正常工作。

app.module.ts

import { initializeApp, provideFirebaseApp } from '@angular/fire/app';
import { getFirestore, provideFirestore } from '@angular/fire/firestore';
...

  imports: [
    provideFirebaseApp(() => initializeApp(environment.firebase)),
    provideFirestore(() => getFirestore()),
    ...
  ]

组件(应该在服务中)

import {Firestore} from '@angular/fire/firestore';

constructor(
    private firestore: Firestore
  ) {
  getDoc(doc(this.firestore, 'docdata/XdQH3683YpCeGhQ6MqO0')).then(snapshot => {
    console.log(snapshot.data())
  });
}

请删除全局变量。这很少是答案,并且可能会让您的代码面临各种其他问题。

© www.soinside.com 2019 - 2024. All rights reserved.