我无法调用firebase.firestore()。settings()函数,因为出现“要求其第一个参数为对象类型”错误:
firebase.firestore().settings({ timestampsInSnapshots: true })
我不理解此错误,但是作为一种变通办法,我试图这样创建一个对象:
const firestoreSettings = Object.create({ timestampsInSnapshots: true })
firebase.firestore().settings(firestoreSettings)
这也不起作用。
此错误来自何处以及如何解决?
答案 0 :(得分:2)
您混淆了名称空间;这应该可以解决问题
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版本更新为最后一个:)
答案 1 :(得分:0)
以下应该可以解决问题:
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
答案 2 :(得分:0)
我注意到此问题标有nuxt.js
。最近,我在使用Nuxt应用程序中的设置初始化Firestore时遇到了此问题。我通过确保firestore().settings()
仅被称为客户端而非服务器端来解决了这个问题。