- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在引用节点上调用oderByChild
,并将日期作为嵌套项。它说:
paymentIDs->userIDXX1->orderID->date:"1254785xxxx" return NULL in
onDatechange()
.indexOn:date is also provided on nodepaymentIDs
mFirebaseDatabase = FirebaseDatabase.getInstance();
Query listpayment = mFirebaseDatabase.getReference("paymentIDs").orderByChild("date").startAt(fromdateinLong).endAt(todateinLong);
listpayment.addListenerForSingleValueEvent(valueEventListener);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.e(TAG,"valueEventListener: OnDatachanged" );
if (dataSnapshot.exists()) {
//if not null, do something.
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e(TAG,"valueEventListener: OnCancelled" );
}
};
最佳答案
您得到 null
因为您缺少一个子项,即用户的 ID。要解决此问题,请更改以下代码行:
Query listpayment = mFirebaseDatabase.getReference("paymentIDs").orderByChild("date").startAt(fromdateinLong).endAt(todateinLong);
至
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
Query listpayment = mFirebaseDatabase.getReference()
.child("paymentIDs")
.child(uid)
.orderByChild("date")
.startAt(fromdateinLong).endAt(todateinLong);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String userId = ds.child("userId").getValue(String.class);
Log.d(TAG, userId);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
listpayment.addListenerForSingleValueEvent(valueEventListener);
编辑:
根据您的评论,您应该知道使用此数据库架构您无法获得所有用户下的所有付款。在 Firebase 中无法使用通配符。所以像这样的查询:
Query listpayment = mFirebaseDatabase.getReference()
.child("paymentIDs")
.child(?)
.orderByChild("date")
.startAt(fromdateinLong).endAt(todateinLong);
不允许。为了解决这个问题,有一个解决方法,这意味着您需要复制数据。因此,您应该创建另一个节点,在其中添加所有用户的所有付款。这种做法称为非规范化
,是 Firebase 的常见做法。为了更好地理解,我建议您观看此视频,Denormalization is normal with the Firebase Database .
此外,当您复制数据时,需要记住一件事。就像添加数据一样,您也需要维护它。换句话说,如果你想更新/删除一个项目,你需要在它存在的每个地方都进行操作。
不幸的是,使用实际的数据库结构你无法实现你想要的。
关于java - Firebase:引用节点上的OrderbyChild,在onDataChange中返回NULL快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53944951/
我正在尝试根据 documentation example 使用 Firebase orderByChild() 函数,但查询未返回过滤或排序。 这是示例数据结构: "notifications":
当子属性具有名称时,Firebase orderByChild() 效果很好,因此对于如下数据: groups groupStatus: "Active" 通过以下方式可以轻
我的 Firebase 架构如下所示, 我正在尝试获取general中的数据并按numberOfLikes属性对它们进行排序。根据我对 orderByChild 的理解,以下代码应该可以工作。 var
您好,我正在使用 ionic 和 firebase 构建一个应用程序,这是我的 firebase 模型: { "users" : { "D972XU" : { "8b91cc5
我正在尝试查询我的数据库以获取子编号> 7的所有日期 this.extra = function() { refer = ref.child(slot); refer.orderByC
我正在尝试使用 orderByChild 对快照进行排序,但这不起作用。 Firebase 规则: "rules": { "community": { "users": { "
我想在时间戳上使用 orderByChild。 但效果并不好。它们甚至按升序或降序排序。 这是结果: 第一:1581952308253 第二位:1581671445437 最后:15832546051
我正在尝试从“通知”子项获取通知计数。还有另一个 child 有一个随 secret 钥(我不知道),其中有一个 userKey 值。 我想使用 orderByChild("userKey") 并获取
这个问题在这里已经有了答案: Firebase query ordering not working properly (2 个答案) 关闭 4 年前。 我的示例数据 代码 let us
我有以下单子(monad)数据结构,想通过子属性 rating 检索订单列表: 示例数据结构 players: { 360368: { name: "Joe, Blogs",
我在使用 orderByChild().equalTo() 方法检索和删除 Firebase 数据库中节点的正确级别时遇到问题。 在网上搜索了好久,并没有真正解决我的问题。请帮忙。 我的数据库结构:
我目前正在使用 Firebase 编写 Android 应用程序。我有一个具有城市属性的产品模型。我正在运行以下查询: mDatabaseReference = FirebaseDatabase.ge
我正在使用 FirebaseRecyclerAdapter 来显示字符串列表。我的查询使用 orderByChild。结果首先用大写字母排序,如下所示: 项目 1、项目 2、项目 3、aItem、bI
我有两种方式对数据库表进行排序。 第一个是按日期(在我的情况下是创建),第二个是按得分。 所以我有一个下拉菜单,用户可以在其中指定他们想要排序的依据,并且我有一个调用正确数据库引用的函数。 goTo
使用 Firebase JS 库。尝试访问 firebase 查询结果中的值但没有成功: var ref = firebase.database().ref(`/listUser/${userId
当动态键位于实际引用和数据之间时,按子项(名称)排序不起作用。 这是我的代码: firebase.database().ref('/usersProfile').orderByChild('name'
我正在使用 FirebaseRecyclerAdapter 来显示字符串列表。我的查询使用 orderByChild。结果首先按大写字母排序,如下所示: 项目 1、项目 2、项目 3、aItem、bI
我尝试按子值“月”对数据库进行排序,但 orderByChild 不起作用。当我使用 onChildEventListener 而不是 addListenerForSingleValueEvent 时
我正在创建一个电话目录应用程序,我想在不同的 Activity 中显示不同的类别数据。我想帮助人们在不同类别中轻松找到他们的信息它向我显示了数据库中的所有数据。但我不想只显示“救护车联系人”类别数据。
我正在使用 FirebaseRecyclerAdapter。 我有许多带有子“maxValue”的节点。假设我有五个节点,列出的每个节点的最大值分别为 34、210、90、315、74。 我期望 .o
我是一名优秀的程序员,十分优秀!