如何向firebase.database.ServerValue.TIMESTAMP添加时间

矛撒玛利亚

我需要将时间添加到admin.database.ServerValue.TIMESTAMP中,然后再检索它。但是,当我尝试向添加更多时间时ServerValue.TIMESTAMP出现错误:

getTime不是函数

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

const ten_secs = 10 * 1000; // 10 seconds
const daily_secs = 24 * 60 * 60 * 1000; // 24 hrs
const weekly_secs = 168 * 60 * 60 * 1000; // 1 week

exports.update = functions.https.onRequest((request, response) => {

    const currentTimeStamp = admin.database.ServerValue.TIMESTAMP;

    const updatedSecs = new Date(currentTimeStamp.getTime() + ten_secs); // should be saved in the db as milliseconds for later retrieve and calculations

    const updatedDay = new Date(currentTimeStamp.getTime() + daily_secs); // should be saved in the db as milliseconds for later retrieve and calculations

    const updatedWeek = new Date(currentTimeStamp.getTime() + weekly_secs); // should be saved in the db as milliseconds for later retrieve and calculations

    console.log("updatedSecs: " + updatedSecs + " | updatedDay: " + updatedDay + " | updatedWeek: " + updatedWeek);

    const ref = admin.database().ref('schedule').child("scheduleId_123").child("my_uid")

    ref.once('value', snapshot => {

        if (!snapshot.exists()) {

            return ref.set({ "updatedSecs": updatedSecs, "updatedDay": updatedDay, "updatedWeek": updatedWeek });

        } else {

            const retrieved_updatedSecs = snapshot.child("updatedSecs").val();
            const retrieved_updatedDay = snapshot.child("updatedDay").val();
            const retrieved_updatedWeek = snapshot.child("updatedWeek").val();

            const currentTime = Date.now();

            // do some calculations with the above values and currentTime.
        }
    });
}
道格·史蒂文森

ServerValue.TIMESTAMP不是可以进行数学运算的标准整数timstamp值。这是一个令牌或哨兵值,当服务器接收到写操作时,它将在服务器上进行解释。这样便可以获取实际服务器的时间戳值。唯一有意义的使用方式是在写时将其作为孩子的价值。

由于您是在Cloud Functions中运行的,因此实际上您的内存中有一个Google服务器时间戳值-在实际时钟中。Google的所有后端都有同步的时钟,因此它们都是准确的。通常,只有ServerValue.TIMESTAMP在不确定用户设备的时钟是否准确时,在客户端应用程序中使用

在您的情况下,不要使用,而ServerValue.TIMESTAMP应仅将其Date.now()作为当前时间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我应该何时在Firebase中使用Firebase.ServerValue.Timestamp和Firebase.database.ServerValue.Timestamp?

firebase.database.ServerValue.TIMESTAMP返回一个对象

Firebase ServerValue#TIMESTAMP 与 updateChildren()

ServerValue.TIMESTAMP在Firebase中保存和检索时间戳

根据ServerValue.TIMESTAMP查询Firebase

Android-Firebase ServerValue.TIMESTAMP返回“ {.sv = timestamp}”

Firebase云功能数据库.ServerValue.TIMESTAMP不返回时间戳

Firebase规则:强制将值设置为Servervalue.TIMESTAMP

Firebase Android ServerValue.Timestamp 映射到 Long

Firebase ServerValue.TIMESTAMP 在这种情况下如何工作

如何将Firebase的ServerValue.TIMESTAMP用作子项并为其设置值

如何使用Swift 4将Firebase ServerValue.timestamp()转换为日期或毫秒

最初使用 ServerValue.TIMESTAMP 和 Android 设置时,如何从 Firebase 数据库中检索本地 TIMESTAMP?

Firebase.ServerValue.TIMESTAMP在立即child_added上返回不同的值

发送数据时,从Android应用程序中的Firebase检索ServerValue.Timestamp

在Firebase中制作POJO时,可以使用ServerValue.TIMESTAMP吗?

在Android的FirestoreRecyclerAdapter中显示ServerValue.TIMESTAMP

ServerReference.setValue(pojo)上的ServerValue.timeStamp错误

firebase 云功能 ServerValue 增量不起作用

如何在Flutter的FirebaseDatabase插件中使用ServerValue

如何向WebMatrix Database.Query添加参数?

如何向Firebase添加额外的用户信息

如何在java.sql.Timestamp中添加时间

如何通过在 Firebase 实时数据库中使用 ServerValue.increment() 来施加限制?

Firebase ServerValue.increment(1)在云功能上不起作用

Firebase 实时数据库在连接不良时复制原子 ServerValue.increment

Firebase.ServerValue.increment() 在 React Native 中不可用吗?

如何从Firebase TimeStamp [Flutter]中检索时间?

如何向时间字段添加小时