Как обновить поле timeStamp в документе пожарного депо из облачной функции? - PullRequest
0 голосов
/ 11 октября 2019

Я использую следующий код для обновления поля timeStamp в документе пожарного депо из облачной функции:

  exports.updateDateWhenPhotoAdded = functions.firestore
  .document('posts/{postId}')
  .onCreate((snap, context) =>
  {
      const userId = snap.data().userId;

      return db.collection('following').doc(`${userId}`).update({ latestPostTimeStamp: `${snap.data().timeStamp.toDate()}` });

  });

timeStamp поле имеет тип данных timestamp. Но после выполнения вышеуказанного кода поле автоматически преобразуется в строковый тип данных , и обновленное значение timeStamp не соответствует формату отметки времени по умолчанию («MMMM dd, yyyy» в «HH: mm: ss a z»),Как это предотвратить?

Ответы [ 2 ]

2 голосов
/ 11 октября 2019

Поле отображается как строка в базе данных, потому что вы передаете строку. Это то, что делают кавычки в JavaScript: создайте строку.

Если вы хотите скопировать временную метку из одного документа в другой, просто передайте необработанное значение поля, не преобразовывая его в строку.

return db.collection('following').doc(userId).update({
    latestPostTimeStamp: snap.data().timeStamp
});
0 голосов
/ 11 октября 2019

Вы можете использовать это admin.firestore.FieldValue.serverTimestamp()

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