Javascript 添加firestore文档退货";时间戳不是构造函数";

Javascript 添加firestore文档退货";时间戳不是构造函数";,javascript,vue.js,google-cloud-firestore,quasar-framework,Javascript,Vue.js,Google Cloud Firestore,Quasar Framework,从我的Quasar应用程序中,我试图将一个文档插入firestore集合。它工作得很好,但当我尝试插入具有特定字段类型(如时间戳)的文档时,我得到了一个错误 [Vue warn]: Error in v-on handler: "TypeError: boot_firebase__WEBPACK_IMPORTED_MODULE_3__.db.Timestamp is not a constructor" 启动文件 import * as firebase from 'fir

从我的Quasar应用程序中,我试图将一个文档插入firestore集合。它工作得很好,但当我尝试插入具有特定字段类型(如时间戳)的文档时,我得到了一个错误

[Vue warn]: Error in v-on handler: "TypeError: boot_firebase__WEBPACK_IMPORTED_MODULE_3__.db.Timestamp is not a constructor"
启动文件

import * as firebase from 'firebase/app'
import "firebase/firestore"

const config = {
    apiKey: "...",
    authDomain: "...",
    databaseURL: "...",
    projectId: "....",
    storageBucket: "...",
    messagingSenderId: "...",
    appId: "..."
}
let firebaseApp = firebase.initializeApp(config)
let db = firebaseApp.firestore()

export { firebaseApp, db }
Vue组件

<template>
   <div>
       <q-card @click="do()">
       </q-card>
   </div>
</template>

<script>
import {firebaseApp, db} from 'boot/firebase'
export default {
  methods:{
    do(){
        db.collection("clt").add({
            dt: new db.Timestamp(42, 0) 
        })
    }
  }
</script>

但我不明白为什么不能直接从db对象调用时间戳?

您当前的代码归结为:

new firebase.firestore().Timestamp(42, 0)
如果查看的文档,则类型不是在
firestore
实例上定义的,而是在其静态命名空间上定义的

要创建新的
时间戳
,您需要:

new firebase.firestore.Timestamp(42, 0)
因此,您的变通方法实际上是正确的解决方案:)

new firebase.firestore.Timestamp(42, 0)