gpt4 book ai didi

android - 查询和更新 children 中的 children 参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:11:16 25 4
gpt4 key购买 nike

当前的 Firebase 数据库结构:

Current Firebase DB Structure

我要实现的目标:

  • 在我所有位置的任何“促销”子项中搜索等于某物的优惠券。
  • 如果找到,将其“limit”参数减少 -1 来更新它

我当前的代码:

    mDatabase = FirebaseDatabase.getInstance().getReference("Place");
Query query = mDatabase.child("promotions").orderByChild("coupon").equalTo("FREEBIGMAC");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
// Not able to find anything here

}

}

@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getMessage());
}
});

我一直试图在 StackOverFlow 下找到一个类似的例子,但我没能找到我的确切案例。非常感谢您的帮助!

最佳答案

Firebase 数据库只能在您执行查询的位置的每个子节点下的已知路径处查询属性。它无法处理动态路径,正如您在此处尝试做的那样。

要对此进行更详细的解释,请在此处查看我的回答:Firebase Query Double Nested .这似乎也相关:Firebase query if child of child contains a value .

解决方案是对您的数据进行非规范化,并从这些地方取消嵌套促销 Activity 。如果你有一个促销列表,你可以得到所有有免费巨无霸的人:

mDatabase = FirebaseDatabase.getInstance().getReference("Promotions");
Query query = mDatabase.orderByChild("coupon").equalTo("FREEBIGMAC");
query.addListenerForSingleValueEvent(new ValueEventListener() {

现在,如果您为每个促销添加一个地点,您可以显示所有有免费巨无霸的地点。

关于android - 查询和更新 children 中的 children 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50182852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com