Firestore.settings () требует, чтобы его первый аргумент имел тип объекта, но это был пользовательский объект - PullRequest
3 голосов
/ 12 июня 2019

Я не могу вызвать функцию firebase.firestore (). Settings (), так как я получаю сообщение «Требуется, чтобы ее первый аргумент имел тип объекта»:

firebase.firestore().settings({ timestampsInSnapshots: true })

Я не знаюЯ не понимаю эту ошибку, но в качестве обходного пути я попытался создать объект таким образом:

const firestoreSettings = Object.create({ timestampsInSnapshots: true })
firebase.firestore().settings(firestoreSettings)

Это тоже не сработало.

Откуда возникла эта ошибка и как ее решить

Ответы [ 2 ]

2 голосов
/ 12 июня 2019

вы путаете пространства имен;это должно сработать

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 до последней:)

0 голосов
/ 21 июня 2019

Следующие действия должны помочь:

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

...