我正在制作一个将用户数据存储到Firebase实时数据库中的应用程序。我已经成功地在Firebase数据库中保存数据并从中检索数据。现在假设用户已将其姓名存储在数据库中。然后,我想检查名称是否存在。
如果存在,那么该名称是否与我的应用程序中存储在字符串中的名称相同?
有什么主意吗?这该怎么做。
用于保存用户名的代码
databaseReference.child("users").child(uniqueID).setValue(name);
有什么方法可以从数据库中获取此特定值?好像有getValue()
之类的东西吗?
这是我ap的顺序:- 第一个用户将注册,然后登录。 首次登录时,我们会要求他设置一个4位数的密码,该密码将存储在firebase数据库中。
这是我存储密码的方式。 现在,当用户单击“ SET”时,我们会将输入的密码保存到数据库,并将用户重定向到mainActivity。但是当用户重新打开我们的应用程序时,我们将检查数据库中是否为此特定用户存储了任何密码。如果存储了密码,那么我们将直接将他发送到密码验证活动,在该活动中,用户将输入密码,并且我们必须检查密码输入是否与用户输入的密码相同或不同。但是如果数据库中没有密码,那么我们将再次打开“设置密码”活动,并要求他设置密码。
答案 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