>  기사  >  백엔드 개발  >  생성되고 업데이트된 타임스탬프 필드를 읽으려면 Firestore까지 추가 왕복이 필요합니까?

생성되고 업데이트된 타임스탬프 필드를 읽으려면 Firestore까지 추가 왕복이 필요합니까?

PHPz
PHPz앞으로
2024-02-11 18:36:091142검색

我是否需要额外往返 firestore 来读取创建和更新的时间戳字段?

Firestore를 사용할 때 생성되고 업데이트된 타임스탬프 필드를 읽으려면 추가 왕복이 필요한지 궁금할 수 있습니다. 내 대답은 아니오 야. Firestore는 각 문서의 생성 및 업데이트 타임스탬프를 자동으로 제공하며, 이러한 필드를 참조하여 해당 시간 정보를 얻을 수 있습니다. 이러한 방식으로 타임스탬프 필드를 읽기 위한 추가 작업이 필요하지 않으며 문서의 생성 및 업데이트 시간을 더 쉽게 얻을 수 있습니다. 이 디자인은 불필요한 코드와 요청을 방지하여 개발 프로세스를 더욱 효율적이고 단순화시킵니다.

질문 내용

  1. 알겠습니다. 저는 go 中有一个 rest api ,它使用 firestore 存储 ticket 리소스입니다. 이를 위해 나는 Firestore go client

    를 사용합니다.
  2. 문서를 date 创建/更新日期 기준으로 정렬할 수 있기를 원하므로 문서에 따라 이 2개 필드를 문서의 타임스탬프로 저장합니다.

  3. 두 필드 모두에 라벨 servertimestamp을 사용합니다. 이렇게 하면 Firestore 서버가 요청을 처리하는 데 걸린 시간이 값이 됩니다.

  4. 업데이트 작업에 대한 http 응답에는 다음 본문이 포함되어야 합니다.

으아악

이는 티켓 문서를 업데이트한 후에는 업데이트된 title 或 price 之外,我还需要更新 date_updated 필드의 값만 변경됨을 의미합니다.

현재는 작동하는데 제가 코딩하는 방식이 맞는지 궁금합니다. 코드 예제에서 볼 수 있듯이 트랜잭션을 사용하여 티켓을 업데이트합니다. 업데이트된 티켓을 다시 읽는 것 외에는 dateupdated 필드의 업데이트된 값을 검색하는 방법을 찾지 못했습니다.

도메인 엔터티는 다음과 같이 정의됩니다.

으아악

여기에 생성 및 업데이트 관점에서 Firestore와의 통신을 첨부하겠습니다.

{
 "ticket": {
   "id": "af41766e-76ea-43b5-86c1-8ba382edd4dc",
   "title": "ticket updated title",
   "price": 9,
   "date_created": "2023-01-06 09:07:24",
   "date_updated": "2023-01-06 10:08:24"
 }
}

해결 방법

제가 올바르게 이해했다면 DateUpdated 필드는 서버 측 타임스탬프입니다. 즉, 서버가 스토리지 계층에 값을 쓸 때 해당 값이 서버에 의해 결정됩니다(소위 필드 변환). Firestore SDK의 쓰기 작업은 작업 결과 데이터를 반환하지 않으므로 해당 값을 애플리케이션으로 다시 가져오는 유일한 방법은 실제로 쓰기 후에 추가 읽기 작업을 수행하여 값을 얻는 것입니다.

SDK는 이 읽기를 자동으로 수행하지 않습니다. 왜냐하면 이 읽기는 유료 작업이고 대부분의 경우 필요하지 않기 때문입니다. 따라서 코드에서 해당 읽기를 수행함으로써 이 비용이 발생할지 여부를 결정할 수 있습니다.

위 내용은 생성되고 업데이트된 타임스탬프 필드를 읽으려면 Firestore까지 추가 왕복이 필요합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제