【问题标题】:Android Firebase database limitToLast(1) weird behaviourAndroid Firebase 数据库 limitToLast(1) 奇怪的行为
【发布时间】:2020-05-28 18:55:14
【问题描述】:

我有一个非常简单的代码:

//   get users poll date, and set in relevant text view
Query query = gameRef.child("users_loto").child("zaalkIb4W0V7MGbekLhqjP34IQi1").orderByChild("pollRank").limitToLast(1);
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if (dataSnapshot.exists()) {
            for (DataSnapshot ds : dataSnapshot.getChildren()) {
                nDate = Long.parseLong(ds.child("pollRank").getValue().toString().substring(0, 14));
                user_result.setText(String.valueOf(nDate));
            }

        }

    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
    }
};
query.addListenerForSingleValueEvent(valueEventListener);

我按 pollRank 排序 - 它与孩子的名字相同。

好像返回了相关节点的最后一个值:

但是,它总是返回之前的那个:

一个非常奇怪的行为...... 关于它为什么会发生的任何想法?

【问题讨论】:

  • 您的查询是按 pollRank 对孩子进行排序,对吗?不是孩子的名字?为什么你期待不同的结果?请编辑问题以进行解释。
  • pollRank 和孩子姓名(号码)是同一个号码
  • 您能否显示这些数据以便我们自己查看?
  • @DougStevenson,附上
  • 除了您期望的数据之外,您在孩子中获得的数据是什么?我们需要能够在这里看到所有正在使用的东西。

标签: java android firebase firebase-realtime-database


【解决方案1】:

@ShehanWisumperuma 的 Tnx!

gameRef.keepSynced(true) 是我问题的正确答案!!!

感谢所有试图帮助我的人!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 2015-11-25
    相关资源
    最近更新 更多