2017-01-14 8 views
3

Android StudioにFirebaseサーバー側のカウントダウンタイマーを実装する方法はありますか?Android用のFirebaseサーバー側のカウントダウンタイマーを実装していますか?

私はタイマーをサーバー側にしたいと思っています。つまり、ユーザーが自分のアプリを開くたびに、カウンタは常にすべてのユーザーに対して同時に表示されます。

私はthis質問への回答を読んだが、2歳以上であり、Firebaseはそれ以来多くの変更を行った。 2014年10月にGoogleによって買収され、2016年5月にはGoogle I/Oで多数の新機能が紹介されました。

Firebaseがその機能を提供できない場合、サーバ側のカウントダウンを提供できる別のプラットフォームがありますか?

答えて

0

私はカウントダウンの方がクライアント側で計算するほうがいいと思います。

あなたはそれを行う場合に発生:

  1. スタート:

    srvTime変数に追加します)、タイムスタンプにサーバー時間を取得すると、 "カウントダウン" タイマーのための新しいレコードを作成します。時間:srvTime

  2. 終了時刻:Time in ms when countdown ended(5分= 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); 
1

のためにあなたのリアルタイムデータベース内の値を更新し、サーバー側のタイマーを作成します。

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で動かすことができました

+0

これはs.oの私の最初の答えです。だから私の返答をどう改善できるか教えてください。 –

+0

あなたはstart(){...}とstop(){...}の中で日付を渡す形式は何ですか? – Adry

関連する問題