从firestore获取数据,但日期字段有问题

问题描述 投票:0回答:1

从 Firestore 获取数据,但问题出在日期字段中 获取数据

dateCreated :  Timestamp nanoseconds :  518000000 seconds :  1722162236 [[Prototype]] :  Object dislikes :  1

尝试打印日期

    const docSnap = await getDoc(docref);

    if (docSnap.exists()) {
      console.log(docSnap.data());
      setDocument(docSnap.data());
      setDocumentDate(Document.dateCreated);
      console.log(DocumentDate);
    } else {
      console.log("Document does not exist");
    }

输出未定义

undefined

我不知道为什么会这样

......................

typescript firebase web next.js google-cloud-firestore
1个回答
0
投票

你说你“输出未定义”,但事实并非如此。

您将获得第一个 console.log() 的对象值,并且您将获得第二个 console.log() 的

undefined

第二个 console.log() 尝试呈现

DocumentDate
的值,假设您调用
setDocumentDate()
,它是一个状态变量。

你想认识到 NextJS/React 中的“设置状态函数”是一个 异步函数。 当你调用它时,JS 将要完成的工作放在“异步队列”上,并继续执行你的下一行代码。 在组件的当前渲染完成之后,状态变量的值才会更新。

因此

setDocument(docSnap.data())
不会立即设置
Document
的值。
setDocumentDate(Document.dateCreated)
将得到
undefined
,因为
Document
还没有值,即使
Document
中有值,对
console.log(DocumentDate)
的调用也会呈现
undefined
,因为
DocumentDate 中没有设置值
还没有。

© www.soinside.com 2019 - 2024. All rights reserved.