我已经将firebase JS SDK从v7升级到v8.0.0,我正在像这样导入firebase。
import * as firebase from 'firebase';
访问以下任何一项都会导致以下错误。
firebase.firestore.FieldValue.serverTimestamp()
firebase.User
firebase.auth.UserCredential
在中找不到导出"firestore"(作为"firebase"导入("firebase"类型"typeof"上不存在属性"firestore"import("appPath/node_modulesfirebase/index"('
我找到了一个变通方法,将firebase更改为firebase。默认值,例如
firebase.default.firestore.FieldValue.serverTimestamp()
这是解决此问题的正确方法吗
编辑:我还在项目中使用AngularFire。我尝试使用:
import firebase from 'firebase/app';
import 'firebase/firestore';
export const firestore = firebase.firestore();
但这给了我以下错误:
未捕获的Firebase错误:Firebase:没有Firebase应用程序"[DEFAULT]"created-调用Firebase App.initializeApp(((App/no-App(。
对于那些在版本9 Firebase上出现类似错误的人,请确保将路径更改为:
import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/firestore';
...
而不是:
import firebase from 'firebase/app';
import 'firebase/auth';
import 'firebase/firestore';
...
取自防火基地文件
当我更新到Angular 11时,我遇到了同样的问题。我尝试了安装firebase管理库的修复程序,并遵循了这个线程的指示,但这不应该在浏览器中运行,并导致了一些其他问题,所以我放弃了。
我从AngularFire的发布说明中注意到,最新版本不支持旧版本的JS SDK,这就是该函数的来源,因此我删除了node_modules、package-lock.json文件,并运行npm缓存clean--force,然后运行npm install以运行clean。这并没有起到什么作用,但我感到很有成就感。
然后我遇到了这个线程,它解释了我的问题,并通过从更改库来进行编译
从"firebase/app"导入*作为firebase;
到
从"firebase/app"导入firebase;
这删除了";找不到消防仓库";错误,并且编译正确。使用原始代码:
获取firebaseTimestamp(({return firebase.firestore.FieldValue.serverTimestamp((;}
希望这能有所帮助-这是一个棘手的bug。
使用
import firebase from "firebase/app";
import "firebase/database";
而不是
'import * as firebase from 'firebase/app';
这可能有助于
之前:版本8
import firebase from 'firebase/app';
import 'firebase/auth';
import 'firebase/firestore';
更改为====>
之后:版本9紧凑型
import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/firestore';
嗨,这里是我使用的表格
从"@angular/fire/compat/auth"导入{AngularFireAuth};
从'firebase/compat/app'导入firebase;
希望它能有所帮助!
实际上你只需要做:
import "firebase/compat/database"; // in angular-fire-database.js
import firebase from 'firebase/compat/app'; // in angular-fire.js
编译时出现问题:在'firebase/app'中找不到导出'default'(作为'firebase'导入(
import firebase from 'firebase/app';
import { auth } from '../misc/firebase';
根据v9更新,我已经更改了导入语句,但错误仍然存在
import firebase from 'firebase/compat/app';