2017-08-27 8 views
0

により自動-IDを取得し、私は、次の形式でいくつかのデータを挿入するためにFirebaseのchildByAutoId()(SWIFT)または.push()(ウェブ)を使用します。私のアプリでは、時間

$autoIdはFirebaseが作るランダムに生成された鍵である
- events 
    - $autoId 
     - time: 
     - name: 
    - $autoId 
     - time: 
     - name: 

timeは、データがプッシュされたエポック時間です。

ユーザーが挿入した各エントリのtimeを変更できるようにします。しかし、私はノードをeventsの下に保ちたいと思っています。.push()を使用するとFirebaseが自然に行うキーと時間でソートされます。しかし、実際に別の順序になるようにtimeを変更すると、エントリは正しくソートされません。

timeでIDを生成する方法はありますか。eventsに挿入すると正しい順序になりますか?そうすれば、データを複製するだけで古いエントリを削除して新しいエントリを挿入できます。

答えて

-1

FirebaseのプッシュIDのアルゴリズムは十分に文書化されているため、特定のタイムスタンプに基づいて関数を簡単に変更して生成することができます。

しかし、代わりに各子ノードの名前付きプロパティとして必要な値を保持することをお勧めします。作成時刻と変更時刻の両方でソートできるようにする必要がある場合は、2つの別々のプロパティを保持してください。そうすれば、プッシュIDの動作に依存する必要はなく、より明示的に名前付きのプロパティを使用して必要なものを達成することができます。