【问题标题】:Retrieve Data from Firebase between timestamps在时间戳之间从 Firebase 检索数据
【发布时间】:2018-10-12 09:33:33
【问题描述】:

我想在两个时间戳之间从 FIREBASE 检索数据,并且我还附上了我的实时数据库图片。 我想在日期和价格之间制作一个图表。我正在制作一个应用程序,它根据时间(日、月或年)向商店所有者显示其销售情况,并通过添加价格子项来显示总价。我该怎么做?

【问题讨论】:

标签: java android firebase firebase-realtime-database


【解决方案1】:

要解决这个问题,请使用以下代码:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.child("User").child(uid).child("M3").orderByChild("timestamp").startAt(startTime).endAt(endTime);
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            long price = ds.child("price").getValue(Long.class);
            Log.d(TAG, "price: " + long);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
query.addListenerForSingleValueEvent(valueEventListener);

其中startTime 是您要开始查询的时间戳,endTime 是您结束查询的时间戳。

【讨论】:

  • 它给出的错误整数太长(153926330482)。通过将其转换为字符串查询不起作用
  • 哦,是的,我的错。对于那个很抱歉。你应该传递一个时间戳而不是一个长的。尝试使用startTimeendTime
  • 嗨阿克马尔!问题解决了吗,现在可以了吗?
  • 不,我正在搜索它。你的回答给了我一个方向。您的查询是正确的,但我没有得到任何数据。
  • 你为什么这么说?你的onDataChange() 被叫了吗?这行Log.d(TAG, databaseError.getMessage()); 打印什么东西吗?
猜你喜欢
  • 2022-11-20
  • 2020-04-08
  • 1970-01-01
  • 2019-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-28
  • 1970-01-01
相关资源
最近更新 更多