繁体   English   中英

为Android实施Firebase服务器端倒计时器?

[英]Implementing a Firebase server-side countdown timer for Android?

有没有办法在Android Studio中实现Firebase服务器端倒计时器?

我希望计时器是服务器端,这意味着每当用户打开我的应用程序时,计数器将始终同时为所有用户。

我读了这个问题的答案,但是他们已经2年多了,Firebase也发生了很大变化。 它于2014年10月被Google收购,并且2016年5月在Google I / O上展示了大量新功能。

如果Firebase无法提供该功能,是否还有另一个可以提供服务器端倒计时的平台?

创建一个服务器端计时器,用于更新实时数据库中的值。

Firebase ref = new Firebase('/firebase/database/url/time');
    new AnimationTimer(){
        start(){...}
        stop(){...}
        handle(){...ref.addValue(time);}
        };

这将每毫秒更新您的实时数据库。 要在您的应用程序中查看它,只需调用它。

Firebase ref = new Firebase('/firebase/database/url/time/value')

        ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot ds) {
            Platform.runLater(() -> {
            label.setText(ds.getValue() + "");
        });
        }

        @Override
        public void onCancelled(FirebaseError fe) {
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

    });

它将在几毫秒内实时更新您的应用程序。 我能够用Java运行它

我没有更好的倒计时想法只在客户端计算。

如果你这样做会发生什么:

  1. 以时间戳获取服务器时间(添加到srvTime变量)

为“倒计时”计时器创建新记录:

  1. 开始时间: srvTime
  2. 结束时间:例如Time in ms when countdown ended (5分钟= 60000 * 5)

你可以在客户端计算。

或者ServerValue.TIMESTAMP创建一个监听ServerValue.TIMESTAMP

ref.addValueEventListener(new ValueEventListener() {
    public void onDataChange(DataSnapshot dataSnapshot) {
        System.out.println(dataSnapshot.getValue()); 
    }

    public void onCancelled(DatabaseError databaseError) { }
});
ref.setValue(ServerValue.TIMESTAMP);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM