gpt4 book ai didi

java - Firebase 获取值返回 NULL 值

转载 作者:行者123 更新时间:2023-12-04 10:21:01 25 4
gpt4 key购买 nike

所以我有一个这种格式的数据库:enter image description here

我需要能够获得 name , pricequantity在我在数据库中搜索条形码之后。

我试过这样的事情:

    mFirebaseInstance = FirebaseDatabase.getInstance();
mFirebaseDatabase = mFirebaseInstance.getReference("ProductData");
UserId = mFirebaseDatabase.push().getKey();

public void searchProduct(String barcode){
mFirebaseDatabase.child("Products").child("barcode").equalTo(barcode).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Log.d("DBVAL", String.valueOf(dataSnapshot.getValue()));
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

这是输出:

D/DBVAL: null

最佳答案

你得到这个结果是因为你没有使用正确的查询。除此之外,您的数据库中没有名为 DataUsers 的节点。 .要获取包含特定条形码的所有子项,请使用以下查询:

Query barcodeQuery = mFirebaseDatabase.child("ProductData").child("Products")
.orderByChild("barcode").equalTo(barcode);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String name = ds.child("name").getValue(String.class);
int price = ds.child("price").getValue(Integer.class);
int quantity = ds.child("quantity").getValue(Integer.class);
Log.d("TAG", name + "/" + price + "/" + quantity);
}
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d("TAG", databaseError.getMessage()); //Don't ignore errors!
}
};
barcodeQuery.addValueEventListener(valueEventListener);

看,我在这个查询中添加了两个节点 ProductDataProducts ,然后我通过 barcode 对所有 child 进行排序属性(property)和使用 .equalTo(barcode) .

关于java - Firebase 获取值返回 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60850209/

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