Firestore.settings() 要求它的第一个参数是对象类型,但它是一个自定义对象
Posted
技术标签:
【中文标题】Firestore.settings() 要求它的第一个参数是对象类型,但它是一个自定义对象【英文标题】:Firestore.settings() requires its first argument to be of type object but it was a custom object 【发布时间】:2019-10-27 08:32:51 【问题描述】:我无法调用 firebase.firestore().settings() 函数,因为我收到一些“要求其第一个参数为对象类型”的错误:
firebase.firestore().settings( timestampsInSnapshots: true )
我不明白这个错误,但作为一种解决方法,我尝试创建一个对象:
const firestoreSettings = Object.create( timestampsInSnapshots: true )
firebase.firestore().settings(firestoreSettings)
这也没用。
这个错误从何而来,如何解决?
【问题讨论】:
【参考方案1】:你混淆了命名空间;这应该可以解决问题
import firebase from 'firebase/app'
if (!firebase.apps.length)
firebase.initializeApp(YOUR_CONFIG_OBJECT_GOES_HERE)
const firestore = firebase.firestore()
const settings = timestampsInSnapshots: true
firestore.settings(settings) // notice it is firestore instead of firestore()
PD:这不再是必需的...尝试将您的 sdk 版本更新到最后一个 :)
【讨论】:
您的意思是更新到 Firebase 6.1.1?如果是这样,我试过了,但效果并不好。我也不明白“admin”是什么(得到“admin is not defined”错误) 我的错我只是更新了答案,admin
是一个约定...我不记得在哪个版本之后它被删除了,但现在它不再是问题了...无论如何,检查更新后的示例,它应该可以工作
谢谢,但我仍然收到“未定义管理员”,还收到“名为“[DEFAULT]”的 Firebase 应用程序已经存在(应用程序/重复应用程序)”。我已经被这个 firebase 卡住了 5 天了,这真是太痛苦了 ***
我刚刚进行了最后一次更新,因为您在多个帖子中都提出了这个问题,所以您应该只将其保留在一个地方,还要考虑到错误可能不在 firebase 方面,而是在您的设置中,检查你的版本,确保你使用的是最后一个
现在返回...requires its first argument to be of type object
错误。正如我所说,我正在使用最新版本的 Firebase。关于多个线程,这是一件棘手的事情,因为我正在处理 2 个完全不同的错误,到目前为止,我得到了一个或另一个......【参考方案2】:
以下应该可以解决问题:
import firebase from 'firebase/app';
import 'firebase/firestore';
const config =
apiKey: 'xxxxxxxxx',
authDomain: 'xxxxxxxxx',
......
;
firebase.initializeApp(config);
const db = firebase.firestore();
const settings =
timestampsInSnapshots: true
;
db.settings(settings);
//....
如另一个答案所示,请注意您不再需要使用timestampsInSnapshots
设置,请参阅https://firebase.google.com/docs/reference/js/firebase.firestore.Settings#optional-timestamps-insnapshots
【讨论】:
【参考方案3】:我注意到这个问题被标记为nuxt.js
。我最近在使用 Nuxt 应用程序中的设置初始化 firestore 时遇到了这个问题。我通过确保 firestore().settings()
只被称为客户端而不是服务器端来解决了这个问题。
【讨论】:
以上是关于Firestore.settings() 要求它的第一个参数是对象类型,但它是一个自定义对象的主要内容,如果未能解决你的问题,请参考以下文章
Java求助下面题目:4、设计一个客户类Customer和它的一个子类Vip,要求如下图
实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty 和Staff。 具体要求如下: Person类:姓名,地址,电话号码和电子邮件地址; Em
23.实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty 和Staff。 具体要求如下: Person类中的属性有:姓名name(String类型)
23.实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty 和Staff。 具体要求如下: Person类中的属性有:姓名name(String类型)(代码