繁体   English   中英

未捕获的错误:尝试在 firestore 中使用 serverTimestamp 时找不到模块“firebase”

[英]Uncaught Error: Cannot find module 'firebase' when trying to use serverTimestamp in firestore

当我尝试添加 serverTimestamp() 时,出现错误消息,指出未导入 firestore (web V9)。 有什么方法可以使用 serverTimestamp 或只导入 firestore/firebase 以便我可以使用它?


addDoc(collection(db, 'rooms', roomId, 'messages'), {
  message:input,
  name:user.displayName,
  timestamp:firebase.firestore.FieldValue.serverTimestamp()// the issue 
})

serverTimestamp 没有变化,您只需要正确导入 firebase 和 firestore(版本 9 兼容)

import firestore from 'firebase/compat';
import firebase from 'firebase/compat/app';

在新的 Modular SDK 中使用serverTimestamp()不需要admin.firestore.FieldValue命名空间。您可以简单地导入它,如下所示:

import { addDoc, collection, serverTimestamp } from "firebase/firestore"
// import serverTimestamp ----->^

addDoc(collection(db, 'rooms', roomId, 'messages'), {
  message: input,
  name: user.displayName,
  timestamp: serverTimestamp() // <-- usage 
})

当您实际使用 Modular SDK 时,仅为serverTimestamp()导入compat版本的 Firestore 会破坏具有 Modular SDK 的目的。

文档中,

当同时使用 compat 和 Modular 版本时,您的应用程序将编译,在您从应用程序中完全删除 compat 语句和代码之前,您不会获得模块化代码的应用程序大小优势。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM