Google Firestore с обновленными и созданными временными метками - PullRequest
0 голосов
/ 18 октября 2018

У меня есть коллекция настроек, которые я пытаюсь сохранить для пользователей, которые входят в систему.Я не нахожу встроенного способа, позволяющего мне обрабатывать обновления временных меток для записей, которые я добавляю.

db = firebase.firestore()
settingsCollection = db.collection('settings')

let userSetting = fb.settingsCollection.doc(this.userId)

//store the settings in firebase
var setWithMerge = userSetting.set({
   createdOn: new Date(),
   updatedOn: new Date(),
   filters: {showTestOrders: show},
   userId: this.userId
 }, {merge: true}).then(ref => {
    //console.log(ref) 
 }).catch(err => {
    console.log(err)
 })

Согласно документам, метод .set() будет создавать или обновлять записи.(https://firebase.google.com/docs/firestore/manage-data/add-data)

Может ли кто-нибудь предложить эффективный способ обработки временных меток?Мой текущий подход всегда обновляет метод createdOn, поскольку записи существуют.Я не хочу обновлять эту запись, если она уже существует.Я надеялся, что есть удобный способ сделать это.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Другая возможность - использовать набор облачных функций для Firebase, которые запускаются с onCreate() и onUpdate().Другими словами, даты создания и обновления записываются в бэкэнд.

См. Следующий ответ: Как добавить метку времени к каждой вставке коллекции, обновить функции Firebase для базы данных Firestore

0 голосов
/ 18 октября 2018

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

Но может быть проще, если в коде вашего клиента есть смысл, когда документопределенно создан в первый раз.

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