【问题标题】:How to use firebase.firestore.FieldValue.serverTimestamp() now?现在如何使用 firebase.firestore.FieldValue.serverTimestamp()?
【发布时间】:2021-12-10 13:59:46
【问题描述】:

我正在关注一个教程,代码中使用 firebase.firestore.FieldValue.serverTimestamp() 将timestamp prop 设置为服务器时间戳。

import firebase from "firebase";
const someFunction = () => {
    addDoc(collection(db, `rooms/${roomId}/messages`), {
      message: input,
      name: user.displayName,
      timestamp: firebase.firestore.FieldValue.serverTimestamp(),
    }).then((res) => getMessagesData());
  };

但我收到此错误。

Module not found: Can't resolve 'firebase' in ...

我想 firebase 有某种更新,我们不再使用 import firebase from "firebase"; 导入它?我应该怎么做才能使用servertimestamp()

【问题讨论】:

  • “我正在关注一个教程”您能否提供一个链接,以便我们检查该教程所做的假设?
  • 对于实际的错误消息,自从 Firebase 在 v9.0 中更改其 JavaScript SDK 的语法以来,最近经常出现此错误消息。例如,请参阅stackoverflow.com/questions/69044315/…
  • youtube.com/watch?v=pUxrDcITyjg 在 3:07:42。谢谢。
  • 鉴于本教程发布时,它必须使用版本 8 或更早版本的 SDKJ,其语法不同。您必须导入与教程使用的相同版本的 SDK,或者升级所有代码导入,如 firebase.google.com/docs/web/modular-upgrade 或我之前提供的链接中所示。

标签: javascript reactjs firebase google-cloud-firestore timestamp


【解决方案1】:

有关最新示例,请参阅adding a server-side timestamp 上的文档,其中包含此 sn-p

import { updateDoc, serverTimestamp } from "firebase/firestore";

const docRef = doc(db, 'objects', 'some-id');

// Update the timestamp field with the value from the server
const updateTimestamp = await updateDoc(docRef, {
    timestamp: serverTimestamp()
});

该文档包含新的 v9 模块化语法和您可能在许多第三方教程中找到的旧语法的并排示例,因此您可以查看如何将代码翻译成新的句法。 upgrade guide 也是一个很好的入门方法。

【讨论】:

  • 这就是我要找的!你是救生员。谢谢!
  • 任何获取“时间戳”类型的方法,就像我们在 v8 中通过 firebase.firestore.Timestamp 获得的一样?
  • 谢谢,刚刚找到:import { Timestamp } from 'firebase/firestore';
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 2021-07-30
  • 2018-12-27
  • 2020-02-28
  • 1970-01-01
  • 1970-01-01
  • 2019-04-19
相关资源
最近更新 更多