【发布时间】:2022-01-18 04:04:47
【问题描述】:
我正在尝试使用 Firestore 的 withConverted 方法将查询作为我在 Typescript 中的自定义类返回。
EventConverter 类
import Event from "@/models/Event";
class EventConverter implements FirestoreDataConverter<Event> {
toFirestore(event: PartialWithFieldValue<Event>): DocumentData {
return {
id: event.id,
code: event.code
}
}
fromFirestore(snapshot: QueryDocumentSnapshot): Event {
const data = snapshot.data()
return new Event(
data.id,
data.code
)
}
}
export default EventConverter
调用代码 如您所见,我期望的返回类型是一个事件,例如我在 eventConverter 中定义的
export async function getEventFromCode(code: string): Promise<Event> {
const q = query(
collection(db, 'events').withConverter(new EventConverter()),
where('code', '==', code),
limit(1)
)
const querySnapshot = await getDocs(q)
return querySnapshot.docs[0]
}
但是 Typescript 让我知道:
TS2740:“QueryDocumentSnapshot”类型缺少“Event”类型的以下属性:气泡、cancelBubble、可取消、组合,
【问题讨论】:
标签: typescript firebase google-cloud-firestore