2017-06-13 3 views

答えて

0

これはFirebaseのタイムスタンプの仕組みが正確ではありません。

実際には、ノードにタイムスタンプを書き込みますが、書き込み後にはアクセスできません。

このノードにアクセスするには、そのノードにオブザーバーを添付して、タイムスタンプが書き込まれるとオブザーバーをスナップショットに戻します。

だから最初に私たちはタイムスタンプが書き込まれたときにそのノードにオブザーバーを取り付け、その後VAR

let kFirebaseServerValueTimestamp = [".sv":"timestamp"] 

を定義し、我々は、イベント

func attachObserver() { 

    let timestampRef = self.ref.child("timestamp") 
    timestampRef.observe(.value, with: { snapshot in 
     if snapshot.exists() { 
      let ts = snapshot.value as! //Int? Double? String? 
      print(ts) 
     } 
    }) 
} 

と書き出し機能が通知されます上記のオブザーバーにイベントを受信させるタイムスタンプ

func doTimestamp() { 
    let timestampRef = self.ref.child("timestamp") 
    timestampRef.setValue(kFirebaseServerValueTimestamp) 
} 

- さらに情報が必要な場合は、コメントを投稿してください。

+0

サーバースタンプを取得する唯一の方法は、まずデータベースに書き込む方法です。ところで、あなたの 'doTimestamp()'関数は機能しません。私は動作しません何@lysov 'FUNC createTimestamp(){ \t \t timestampRefは= self.ref.child( "タイムスタンプ")させ \t \t timestampRef.setValue(ServerValue.timestamp()) \t}' – lysov

+0

を使用しました。これは、機能的なアプリからコピーされ貼り付けられたコードです。 kFirebaseServerValueTimestampを定義し、それをノードに書き込んでから、オブザーバを起動して、タイムスタンプを読み込んで使用できるようにする必要があります。 – Jay

関連する問題