簡體   English   中英

Firebase 獲取值返回 NULL 值

[英]Firebase getting value returns NULL value

所以我有一個這種格式的數據庫: 在此處輸入圖片說明

在數據庫中搜索條碼后,我需要能夠獲得namepricequantity

我試過這樣的事情:

    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:空

你得到這個結果是因為你沒有使用正確的查詢。 除此之外,您的數據庫中沒有名為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屬性對所有子項進行排序並使用.equalTo(barcode)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM