是否可以在Firebase数据库中设置计时器?

时间:2017-11-12 09:41:38

标签: android firebase firebase-realtime-database

我正在创建一个移动应用程序,显示正在进行的足球比赛(业余比赛,而非专业)的得分。所以,我基本上做的是,我在Firebase实时数据库中创建一个足球游戏的数据,其中可能包含以下信息:

Team A: String
Team B: String
Score A: int
Score B: int
isLive: true/false
id: int
currentTime: ???

因此,当我在我的应用中按Score Update时,它会更新分数,并将此更改应用到我应用中的ListView。

到目前为止,一切似乎都很清楚,但我在显示当前游戏时间方面遇到了麻烦。

我想做类似的工作:

enter image description here

这是来自我的动机的网络应用程序(http://livescore.com)。游戏开始时,游戏时间从1分钟到90分钟显示,如图所示,并在结束时转入FT

我的问题是,

是否可以像Firebase数据库中的自动递增计时器一样,或者是否可以使其工作,就像它每1分钟增加1到其值一直到某一点?

任何建议都会受到赞赏。

3 个答案:

答案 0 :(得分:2)

使用Firebase实时数据库无法实现您的目标,因为它不提供类似的功能。要解决此问题,您需要创建一个自己制定的自定义计划机制,为您提供该行为。

所以不幸的是,在这种情况下,你没有摆脱编码。

答案 1 :(得分:0)

//fetch test time in minutes
    //and convert that into milli seconds
    mTimerRef = FirebaseDatabase.getInstance().getReference("eTest").child(key).child("TestMinutes");
    mTimerRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            long millisecs = (Integer.parseInt(dataSnapshot.getValue(String.class))) * 6000;
            mTimeLeftInMillis = millisecs;
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            throw databaseError.toException();
        }
    });

在firebase中添加分钟,并使用此功能读取该分钟并转换为毫秒数。 希望有帮助。

答案 2 :(得分:0)

最有可能的是,您需要另一个始终工作并更新 FireBase 中的全球时间的客户端,并且您可以根据全球时间进行计算