gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 18:39:31 25 4
gpt4 key购买 nike

我已经将 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 'typeofimport("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 beencreated - 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com