从Firebase数据检查和比较应用程序中的特定数据

时间:2018-10-14 09:13:28

标签: android firebase firebase-realtime-database

我正在制作一个将用户数据存储到Firebase实时数据库中的应用程序。我已经成功地在Firebase数据库中保存数据并从中检索数据。现在假设用户已将其姓名存储在数据库中。然后,我想检查名称是否存在。

如果存在,那么该名称是否与我的应用程序中存储在字符串中的名称相同?

有什么主意吗?这该怎么做。

用于保存用户名的代码

databaseReference.child("users").child(uniqueID).setValue(name);

有什么方法可以从数据库中获取此特定值?好像有getValue()之类的东西吗?

以下是我的应用的屏幕截图:- App Screenshot

这是我ap的顺序:- 第一个用户将注册,然后登录。 首次登录时,我们会要求他设置一个4位数的密码,该密码将存储在firebase数据库中。

Aboveis firebase屏幕截图:- Firebase Screenshot

这是我存储密码的方式。 现在,当用户单击“ SET”时,我们会将输入的密码保存到数据库,并将用户重定向到mainActivity。但是当用户重新打开我们的应用程序时,我们将检查数据库中是否为此特定用户存储了任何密码。如果存储了密码,那么我们将直接将他发送到密码验证活动,在该活动中,用户将输入密码,并且我们必须检查密码输入是否与用户输入的密码相同或不同。但是如果数据库中没有密码,那么我们将再次打开“设置密码”活动,并要求他设置密码。

1 个答案:

答案 0 :(得分:1)

是的,您可以与@login_required def manage_clinics(request): msg = '' if request.method == 'POST': clid = int(request.POST.get('clinics')) print("POST details", request.POST) if request.POST.get('createdoctor')=='Create Doctor': clinicobj = Clinic.objects.get(clinicid=clid) print("Creating Doctor for clinic:", clinicobj) return createdoctor(request, clinicobj.label) else: form = ChooseClinicMetaForm() return render(request, 'clinic/manageclinics.html', {'form': form, 'msg': msg})一起使用orderByChild()查询来检查用户的数据是否存在于数据库中。

此代码不仅检查密码是否存在,而且还会检查密码是否正确。

equalTo()

这里DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("password").child("passcodes"); ref.orderByChild("passcode").equalTo(passCodeYouHave).addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { if(dataSnapshot.exists()) // passcode is present, and is correct else // incorrect passcode or no passcode } @Override public void onCancelled(@NonNull DatabaseError databaseError) { } }); 是您在应用中拥有的用户的密码,如果名为passCodeYouHave的节点中存在该名称,则可以使用它来登录Firebase。

此代码将不会检查正确的密码,只会检查是否存在密码。

passcode