Мой ответ - использовать следующий код на моем сервере внутри API с использованием Firebase Admin SDK. Вот пример того, что я искал, но до сих пор не нашел. Приведенный ниже код демонстрирует использование ...
Firebase Admin sdk => FireStore
Это надежно, потому что оно приходит с моего сервера через SDK Firebase Admin, а не через SDK клиента Firebase, кроме того, serverTimestamp () устанавливается сервером FireStore, а не моим веб-сервером (через 'new Date ()') или клиентская машина, которая делает оригинальный запрос. Я смог понять этот ответ, выведя из примеров ...
Firebase Client sdk => FireStore https://firebase.google.com/docs/firestore/manage-data/add-data
и
Firebase Admin sdk => Firebase Auth
https://firebase.google.com/docs/auth/admin/manage-users
var admin = require('firebase-admin');
admin.initializeApp({
credential: admin.credential.cert({
projectId: MY_FIREBASE_PROJECT_ID,
clientEmail: MY_FIREBASE_CLIENT_EMAIL,
privateKey: MY_FIREBASE_PRIVATE_KEY,
}),
databaseURL: MY_FIREBASE_DATABASE_URL
});
var serverTimestamp = admin.firestore.FieldValue.serverTimestamp()
admin.firestore().collection('someFireStoreCollection').doc(someFireStoreCollectionId).update({
someDateField: serverTimestamp
}).then(function() {
console.log("Successfully updated FireStore");
}).catch(function(error) {
console.log("Error updating FireStore:", error);
throw(error)
});