我已经将 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/