为 Android 实施 Firebase 服务器端倒数计时器?
Implementing a Firebase server-side countdown timer for Android?
有没有办法在 Android Studio 中实现 Firebase 服务器端倒数计时器?
我希望计时器在服务器端,这意味着每当用户打开我的应用程序时,所有用户的计数器将始终在同一时间。
我阅读了 this 问题的答案,但它们已有 2 年多的历史,自那以后 Firebase 发生了很大变化。它于 2014 年 10 月被 Google 收购,并于 2016 年 5 月在 Google I/O.
上推出了大量新功能
如果 Firebase 无法提供该功能,是否有其他平台可以提供服务器端倒计时?
我没有更好的主意只在客户端计算倒计时。
如果你这样做会发生什么:
- 获取时间戳中的服务器时间(添加到
srvTime
变量)
为 "countdown" 计时器创建新记录:
- 开始时间:
srvTime
- 结束时间:
Time in ms when countdown ended
例如(5min = 60000*5)
并且可以在客户端进行计算。
或为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);
创建一个服务器端定时器来更新实时数据库中的值。
Firebase ref = new Firebase('/firebase/database/url/time');
new AnimationTimer(){
start(){...}
stop(){...}
handle(){...ref.addValue(time);}
};
这将每毫秒更新您的 real-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.
}
});
它将在 real-time 后在您的应用程序上以毫秒为单位更新。我能够在 Java
中得到这个 运行
有没有办法在 Android Studio 中实现 Firebase 服务器端倒数计时器?
我希望计时器在服务器端,这意味着每当用户打开我的应用程序时,所有用户的计数器将始终在同一时间。
我阅读了 this 问题的答案,但它们已有 2 年多的历史,自那以后 Firebase 发生了很大变化。它于 2014 年 10 月被 Google 收购,并于 2016 年 5 月在 Google I/O.
上推出了大量新功能如果 Firebase 无法提供该功能,是否有其他平台可以提供服务器端倒计时?
我没有更好的主意只在客户端计算倒计时。
如果你这样做会发生什么:
- 获取时间戳中的服务器时间(添加到
srvTime
变量)
为 "countdown" 计时器创建新记录:
- 开始时间:
srvTime
- 结束时间:
Time in ms when countdown ended
例如(5min = 60000*5)
并且可以在客户端进行计算。
或为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);
创建一个服务器端定时器来更新实时数据库中的值。
Firebase ref = new Firebase('/firebase/database/url/time');
new AnimationTimer(){
start(){...}
stop(){...}
handle(){...ref.addValue(time);}
};
这将每毫秒更新您的 real-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.
}
});
它将在 real-time 后在您的应用程序上以毫秒为单位更新。我能够在 Java
中得到这个 运行