我需要一种检查数据的方法,实时数据库上是不是存在
Posted
技术标签:
【中文标题】我需要一种检查数据的方法,实时数据库上是不是存在【英文标题】:i needed a way to check data, is that exist or not on realtime database我需要一种检查数据的方法,实时数据库上是否存在 【发布时间】:2022-01-04 14:31:27 【问题描述】:我有一个用于打开更高权限活动布局的二维码布局,我如何在 firebase 数据库上在线制作/搜索代码,如下所示
this what my firebase data look
下面是可以打开新活动的代码,但我希望每个管理员的代码都不同,所以如果管理员退休,我不需要每次都更改应用程序内的代码
public class BarcodeScanner extends AppCompatActivity
private CodeScanner mCodeScanner;
private static final String Code = "newsenyum";
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_barcode_scanner);
CodeScannerView scannerView = findViewById(R.id.scanner_view);
mCodeScanner = new CodeScanner(this, scannerView);
mCodeScanner.setDecodeCallback(new DecodeCallback ()
@Override
public void onDecoded(@NonNull final Result result)
BarcodeScanner.this.runOnUiThread(new Runnable()
@Override
public void run()
String codeFromScanner = result.getText(); // initialize the code from scanner
if(Code.equals (codeFromScanner.trim ()))
redirectToNewActivity ();
else
Toast.makeText (BarcodeScanner.this, "QRCode Tidak Dapat di Gunakan", Toast.LENGTH_SHORT).show ( );
);
);
scannerView.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
mCodeScanner.startPreview();
);
private void redirectToNewActivity()
startActivity (new Intent (getApplicationContext ( ), AdminUID.class));
finish ( );
@Override
protected void onResume()
super.onResume();
mCodeScanner.startPreview();
@Override
protected void onPause()
mCodeScanner.releaseResources();
super.onPause();
this is the code
【问题讨论】:
我很难理解问题所在。这段代码中究竟有什么不符合您的预期? @AlexMamo 所以我希望private static final String Code = "newsenyum";
在 firebase 管理员帐户上
对不起,我还是不明白你在找什么,
@AlexMamo 我想检查一个存在于实时 firebase 上的字符串,看起来像 barcode code : pa29h9h75dg
,就像检查这个字符串是否存在于 firebase 但不仅存在于一个帐户中跨度>
@AlexMamo 也许我试图更具体地解释最重要的问题,我一直在编辑它,对不起,如果我在这里的英语不好,很难解释我的问题
【参考方案1】:
要检查数据库中是否存在特定的条形码,您需要使用 Query 对象。所以请使用以下代码行:
DatabaseReference db = FirebaseDatabase.getInstance().getReference();
DatabaseReference adminRef = db.child("Admin");
Query queryByCode = adminRef.orderByChild("barcode code").equalTo("pa29h9h75dg");
queryByCode.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>()
@Override
public void onComplete(@NonNull Task<DataSnapshot> task)
if (task.isSuccessful())
DataSnapshot snapshot = task.getResult();
if(snapshot.exists())
Log.d("TAG", "Barcode already exists.");
for (DataSnapshot ds : snapshot.getChildren())
String id = ds.child("id").getValue(String.class);
Log.d("TAG", id);
else
Log.d("TAG", "Barcode doesn't exist.");
else
Log.d("TAG", task.getException().getMessage()); //Don't ignore potential errors!
);
logcat 中的结果将是:
Lela
【讨论】:
好的,让我现在试试 是的。试一试,告诉我它是否有效。 idk 为什么,但我无法从上面的二维码获取文本 看不到文字是什么意思?你指的是id
吗?如果是,请检查我的更新答案。
还没有,但让我现在试试,然后打勾:)以上是关于我需要一种检查数据的方法,实时数据库上是不是存在的主要内容,如果未能解决你的问题,请参考以下文章