按时间戳查询firebase数据

时间:2018-01-02 11:13:28

标签: firebase nosql google-cloud-firestore

所以我在firebase云端防火墙上的记录是这样的:

[  
   {  
      "category":"drinks",
      "expensetype":"card",
      "id":"5c673c4d-0a7f-9bb4-75e6-e71c47aa8d1d",
      "name":"JJ",
      "note":"YY",
      "price":57,
      "timestamp":"2017-11-30T22:44:43+05:30"
   },
   {  
      "category":"drinks",
      "expensetype":"card",
      "id":"85731878-eaed-2740-6802-e35e7758270b",
      "name":"VV",
      "note":"TTT",
      "price":40,
      "timestamp":"2017-12-30T22:41:13+05:30"
   }
]

我想查询带有时间戳的数据,并获取属于特定月份或日期的数据。

例如,如果我在我的日历中点击特定月份(例如3月份),我只希望在结果中显示该特定月份的数据。我怎么能这样做?

我已使用保存日期 firebase.firestore.FieldValue.serverTimestamp()

提前感谢您的帮助。

编辑:

这是我构建查询的方式

var spendsRef = this.db.collection('spend', ref => ref.where("timestamp", ">", "12-12-2017"));

this.items = spendsRef.valueChanges();

但它仍然会返回数据库中的所有数据

答案:

var todayDate = new Date("Tue Jan 02 2018 00:00:00 GMT+0530 (IST)") // Any date in string
var spendsRef = this.db.collection('spend', ref => ref.where("timestamp", ">", todayDate));
this.items = spendsRef.valueChanges();

2 个答案:

答案 0 :(得分:3)

使用两个相对运算符,您可以确定查询返回的文档的精确范围:

ref.where("timestamp", ">=", "2017-11").where("timestamp", "<", "2017-12")

答案 1 :(得分:0)

这是android方式

cout << ex.wrapper.wrapped << endl

您可以按时间戳

进一步对结果进行排序
*(&ex.wrapper.wrapped)