Я довольно новичок в программировании (Год начала go), и в настоящее время я перемещаю базу данных MySQL в Firestore, и в качестве моего проекта, который я изучаю, я переписываю и перехожу с нуля. Веб-сайт Joomla, которым я был в течение многих лет я использовал JavaScript и Firestore в качестве моих основных инструментов.
Итак, моя текущая задача: у меня есть JSON импортированная историческая c дата, которая хранится в виде строки в документе Firestore. Я пытаюсь преобразовать его в формат отметки времени, но получаю следующую ошибку «RangeError: Недопустимое значение времени» (подробности об ошибке см. Ниже)
Итак, вот шаги.
1) I импортировал мои документы из старой базы данных SQL с файлом JSON с указанными полями c date в документы firestore. Вы можете увидеть пример поля «создан» на изображении ниже Дерево документа Firestore и настройка поля
2) Затем я импортирую поле пожарного хранилища под названием «создано», используя JavaScript на клиенте и проверил, что это происходит через console.log, это как
датаДобавлено сб 15.10.2016 16:29:41 GMT + 0100 (Briti sh Summer Time)
3) Я изменяю поле на новую дату и метку времени, используя код .... и проверяю в консоли, оно показывает, как оно выглядит, и показывает в консоли следующее:
Метка времени uo {секунд: 1476545381, наносекунд: 0}
Затем я создаю команду обновления firestore для «сильного» сильного поля, чтобы заменить ее новой датой времени, конвертированной в дату. Nb Я также попытался использовать команду обновления, чтобы получить это в новом поле, которое я назвал «create_at», и оно выдало ту же ошибку.
Итак, перед тем, как я go, далее приведу основную функцию, которую я вызываю позже понести это.
const TimeStamp = (query) => {
let dateAdded = new Date(query.created)
let fTimestamp = new firebase.firestore.Timestamp.fromDate(dateAdded)
console.log('dateAdded', dateAdded)
//console returns// dateAdded Sat Oct 15 2016 16:29:41 GMT+0100 (British Summer Time)
console.log('Timestamp', fTimestamp)
//console returns// Timestamp uo {seconds: 1476545381, nanoseconds: 0}
var queryTime = db.collection("Northern_Ireland").doc('2183').collection("reviews").doc('2573');
queryTime.update({
created_at: fTimestamp,
//console returns// RangeError: Invalid time value
})
.then(function() {
console.log("Document successfully updated!");
})
.catch(function(error) {
// The document probably doesn't exist.
console.error("Error updating document: ", error);
});
}
4) Затем я получаю консольную ошибку "RangeError: Invalid time value", подробности в pi c ниже и читают загрузки, но не могут видеть ничего, что действительно объясняет почему? Мне кажется, ему удалось создать временную метку, поэтому я не уверен, почему не обновит документ в Firestore. Возможно, форматирование неверно для строки поля основной даты, которое она выводит из-за ошибки консоли: ошибка консоли
5) Я использовал тот же процесс для обновления других полей новыми строковыми или целочисленными данными и У меня нет пробников, поэтому кажется, что что-то указывает c на формат отметки времени
Большое спасибо, если вы можете помочь мне в этом путешествии.