angular - 升级到 firebase js sdk v8 后,在 'firestore' 中找不到导出 'firebase'(导入为 'firebase')

标签 angular typescript firebase angularfire

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

import * as firebase from 'firebase';
访问以下任何一项都会导致以下错误。
firebase.firestore.FieldValue.serverTimestamp()
firebase.User
firebase.auth.UserCredential

export 'firestore' (imported as 'firebase') was not found in 'firebase' Property 'firestore' does not exist on type 'typeof import("appPath/node_modules/firebase/index")'


我通过将 firebase 更改为 firebase.default 找到了一种解决方法,例如
firebase.default.firestore.FieldValue.serverTimestamp()
这是解决此问题的正确方法吗?
编辑:我也在项目中使用 AngularFire。
我尝试使用:
import firebase from 'firebase/app';
import 'firebase/firestore';
export const firestore = firebase.firestore();
但这给了我以下错误:

Uncaught FirebaseError: Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp() (app/no-app).

最佳答案

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

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



import firebase from 'firebase/app';


这消除了“找不到firestore”错误并且它正确编译。使用原始代码:

get firebaseTimestamp() { return firebase.firestore.FieldValue.serverTimestamp(); }


希望这会有所帮助 - 这是一个棘手的错误。

关于angular - 升级到 firebase js sdk v8 后,在 'firestore' 中找不到导出 'firebase'(导入为 'firebase'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65658510/

相关文章:

javascript - TypeScript 中有没有办法警告 "1"+ 1 = "11"?

Angular 和 eslint - 未找到规则 '@typescript-eslint/space-infix-ops' 的定义

Angular2 : Property 'controls' does not exist on type 'AbstractControl' . 通过索引访问格式数组中对象的 .control 时出错

ios - Firebase 子查询排序无法正常工作

firebase - 刷新以加载新数据并滚动以分页数据Flutter Firestore

angular - Material 图像列表错误 : @import "@material/feature-targeting/functions";

Angular 2 : dynamic selector property

node.js - 在 Angular2 中保护 API key

javascript - 如何使用 Firebase Analytics 从 SPA(单页应用程序)网络应用程序发送 page_view 事件?

angular - valueGetter 没有反射(reflect)在 rowdata ag-grid 中