2016-11-10 4 views
0

anglefireを使用してデータを取得しようとしています。配列内のすべてのデータを1つのタイムスタンプから別のタイムスタンプに取り出します。ここfirebaseに上記のコード接続でanglefireタイムスタンプを取得するタイムスタンプ

enter image description here

var messageOfEachUser =firebase.database().ref().child("messages").child(data.key); 
var currentTime = firebase.database.ServerValue.TIMESTAMP; 
var query = messageOfEachUser.queryOrderedByChild("time").queryStartingAtValue(currentTime).queryEndingAtValue(lastSeenValueFromNode); 

var listOfNewMessages = $firebaseArray(query); 
console.log(listOfNewMessages); 

。また、currenTimeからlastSeenValueFromNodeまでのデータを照会します。lastSeenValueFromNodeには、ユーザーが前回このノードにアクセスしたときのタイムスタンプが含まれています。

+0

あなたがどこにいるかのコードを表示できますか? –

+0

var messageOfEachUser = firebase.database()。ref()。子( "メッセージ")。子(データ。 var currentTime = firebase.database.ServerValue.TIMESTAMP;クエリの開始時刻を指定します var listOfNewMessages = $ firebaseArray(query); console.log(listOfNewMessages); 上記のコードでfirebaseに接続します。そしてデータを照会してください –

+0

[編集](http://stackoverflow.com/posts/40522288/edit)し、コードを書いてフォーマットすることができます。 –

答えて

0

あなたはここであなたのやり方でfirebase.database.ServerValue.TIMESTAMPをユーザにすることはできません。それは本当にマーカー値で、操作がサーバーに到達したときに実際のタイムスタンプに変換されます。

あなたはタイムスタンプを使用しているので、あなたは単に概算としてローカルタイムを使用することができます。

var currentTime = Date.now(); 

また、あなたはFirebaseの組み込み待ち時間の検出値を使用してServerValue.TIMESTAMPに近い値を得ることができます:

var offsetRef = firebase.database().ref(".info/serverTimeOffset"); 
offsetRef.on("value", function(snap) { 
    var offset = snap.val(); 
    var currentTime = Date.now() + offset; 
}); 
+0

ありがとうございます。私は今それを試してみる –

関連する問題