跳至内容

Firestore 和数据库全局选项

如果您发现自己一直在将相同的选项传递给 useDocument()useDatabaseObject() 等,可以使用全局选项来避免重复。

ts
import { globalFirestoreOptions } from 'vuefire'

globalFirestoreOptions.converter = ...

更改这些选项将影响您应用程序中对 useDocument()useDatabaseObject() 等的**所有调用**,**以及选项 API 调用**($firestoreBind()$rtdbBind())。

自定义 serialize/converter

在调整 serialize/converter 或使用 .withConverter() 时,**您需要确保返回的对象包含其原始 id**,以便其他 VueFire 功能能够正常工作。最简单的方法是重复使用默认的 serialize/converter

ts
import { firestoreDefaultConverter, globalFirestoreOptions } from 'vuefire'

globalFirestoreOptions.converter = {
  // the default converter just returns the data: (data) => data
  toFirestore: firestoreDefaultConverter.toFirestore,
  fromFirestore: (snapshot, options) => {
    const data = firestoreDefaultConverter.fromFirestore(snapshot, options)
    // if the document doesn't exist, return null
    if (!data) return null
    // add anything custom to the returned object
    data.metadata = snapshot.metadata
    return data
  },
}