Добавление метки времени к вложенному объекту в Cloud Firestore - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь установить в поле отметки времени для вложенного элемента текущее время:

docRef.update({
   arrayOfStuff: {
        id: 123,
        dateAdded: admin.firestore.FieldValue.serverTimestamp()
   }
})

Я получаю сообщение об ошибке:

FieldValue.serverTimestamp() cannot be used inside of an array

Использование Date.now() возвращает мне значение int, а не отметка времени.

Попытка Firestore.Timestamp.fromDate() приводит к ошибке:

TypeError: date.getTime is not a function
    at Function.fromDate (/srv/node_modules/firebase-admin/node_modules/@google-cloud/firestore/build/src/timestamp.js:108:42)
    at firestoreDB.doc.get.then.site (/srv/index.js:32:45)

, где строка 32 индекса. js:

let now = admin.firestore.Timestamp.fromDate(Date.now());

Мысли?

1 Ответ

1 голос
/ 06 апреля 2020

Как объяснено здесь , «FieldValue.serverTimestamp не может поддерживаться внутри массивов без серьезного пересмотра работы Firestore». Так что это поведение ожидается.

В поисках немного больше я смог найти обходной путь Рено Таурне c. Хотя он упомянул, что вам может потребоваться изменить модель данных.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...