升级到firebase js sdk v8后,在“firebase”中找不到导出“firestore”(作为“firebase”导入)

vmjh9lq9  于 2022-11-25  发布在  其他
关注(0)|答案(7)|浏览(135)

我已经将firebase JS SDK从v7升级到了v8.0.0,我正在像这样导入firebase。

import * as firebase from 'firebase';

访问以下任何内容会导致以下错误。

firebase.firestore.FieldValue.serverTimestamp()
firebase.User
firebase.auth.UserCredential

在'firebase'中未找到导出'firestore'(作为'firebase'导入)属性'firestore'在类型'typeof import(“appPath/node_modules/firebase/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]”-调用Firebase应用程序。initializeApp()(应用程序/无应用程序)。

oalqel3c

oalqel3c1#

对于在版本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';
...

取自firebase doc

7gs2gvoe

7gs2gvoe2#

当我更新到Angular 11时,我遇到了同样的问题。我尝试了安装firebase管理库的修复程序,并按照this thread的指示操作,但这不应该在浏览器中运行,并导致了一些其他问题,所以我放弃了。
我从AngularFire的release notes中注意到最新版本不支持旧版本的JS SDK,这就是这个函数的来源,所以我删除了node_modules,package-lock.json文件,并运行npm cache clean --force,然后运行npm install来干净运行。这没有什么作用,但我感觉完成了。
然后我遇到了this thread,它解释了我的问题,并通过将库从
'import * 从'firebase/app '导入为firebase;

从“firebase/app”导入firebase;
这样就消除了“找不到firestore”错误,并且编译正确。可以使用原始代码:
(2)如果是,则返回firebase.firestore.字段值.服务器时间戳;}
希望这对你有帮助-这是一个粘粘的虫子。

c6ubokkw

c6ubokkw3#

用途

import firebase from "firebase/app";
import "firebase/database";

代替

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

这可能会有所帮助

1l5u6lss

1l5u6lss4#

嗨,这里是我使用的表单。
从'@angular/fire/compat/auth'导入{Angular 防火认证};
从“firebase/compat/app”导入firebase;
希望这对夏侯惇有所帮助!

svdrlsy4

svdrlsy45#

之前:版本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';
rmbxnbpk

rmbxnbpk6#

其实你只要做:

import "firebase/compat/database"; // in angular-fire-database.js

import firebase from 'firebase/compat/app'; // in angular-fire.js
s3fp2yjn

s3fp2yjn7#

编译时出现问题:在“firebase/app”中未找到导出“default”(作为“firebase”导入)

import firebase from 'firebase/app';
import { auth } from '../misc/firebase';

根据v9更新,我已经更改了导入语句,但错误仍然存在

import firebase from 'firebase/compat/app';

相关问题