[英]Cannot get the result from firebase and show in alert dialog
我是开发 android 应用程序的新手,现在我正在做一个项目,该项目使用barcode scanner
使用Zxing
库扫描条形码并从它获得的条形码编号中,它将与我在Firebase real-time database
中创建的条形码编号进行比较Firebase real-time database
,检索条码编号的相关信息。
但是现在我无法在警报对话框中获取检索到的信息,并且在调试期间无法获取此代码:
reff = FirebaseDatabase.getInstance().getReference().child("Product");
显示为空。 我希望有人可以帮助我解决这个问题。 谢谢
这是代码:
public void handleResult(final Result rawResult) {
final String result = rawResult.getText();
Log.e("QRCodeScanner", rawResult.getText());
Log.e("QRCodeScanner", rawResult.getBarcodeFormat().toString());
reff = FirebaseDatabase.getInstance().getReference().child("Product");
reff.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data : dataSnapshot.getChildren()){
String Barcode = data.getValue().toString();
if (Barcode.equals(rawResult.getText())){
String ProductName = dataSnapshot.child("ProductName").getValue().toString();
AlertDialog.Builder builder = new AlertDialog.Builder(BarcodeScannerActivity.this);
builder.setTitle("Scan Result");
builder.setMessage(ProductName);
AlertDialog alert1 = builder.create();
alert1.show();
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e(TAG, databaseError.getMessage());
}
});
下面是我的Firebase real-time database
结构:
{
"Product" : {
"Product1" : {
"Barcode" : 112233,
"MemPrice" : 5,
"Price" : 10,
"ProductName" : "Logitech"
},
"Product2" : {
"Barcode" : 123456,
"MemPrice" : 5000,
"Price" : 10000,
"ProductName" : "Dell"
},
"Product3" : {
"Barcode" : 778899,
"MemPrice" : 150,
"Price" : 300,
"ProductName" : "BenQ"
}
}
}
改变这个:
String Barcode = data.getValue().toString();
if (Barcode.equals(rawResult.getText())){
String ProductName = dataSnapshot.child("ProductName").getValue().toString();
AlertDialog.Builder builder = new AlertDialog.Builder(BarcodeScannerActivity.this);
builder.setTitle("Scan Result");
builder.setMessage(ProductName);
AlertDialog alert1 = builder.create();
alert1.show();
}
进入这个:
String Barcode = data.child("Barcode").getValue(String.class);
if (Barcode.equals(rawResult.getText())){
String ProductName = data.child("ProductName").getValue(String.class);
AlertDialog.Builder builder = new AlertDialog.Builder(BarcodeScannerActivity.this);
builder.setTitle("Scan Result");
builder.setMessage(ProductName);
AlertDialog alert1 = builder.create();
alert1.show();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.