java - 比较来自 Firebase 的数据

标签 java android firebase firebase-realtime-database

大家好,我得到了一个空值,我不知道为什么..如果你能帮助我,我会很感激。

这是我在 Firebase 上的 json。

usuarios{
 krum{
      dni: "43193622"
      email: "pedroccc"
      login: "krum"
      nombre:"pedro"
      pass: "1234" }

这是我的方法:

login_text = (EditText) findViewById(R.id.txtLogin);

点击监听器:

final String log_child = login_text.getText().toString();
final String pass_child = pass_text.getText().toString();
mDatabase = FirebaseDatabase.getInstance().getReference("usuarios").child(log_child);

mDatabase.child("pass").addValueEventListener(new ValueEventListener() {
     @Override
     public void onDataChange(DataSnapshot dataSnapshot) {
            String mpass = dataSnapshot.getValue(String.class);
            pass = mpass;
            }

     @Override
     public void onCancelled(DatabaseError databaseError) {
            }
     });

然后我将 pass 与 pass_child 与 equals 进行比较,我发现 pass 为空。知道吗?谢谢

PD。在 Firebase 中,所有设置都是真实的

最佳答案

试试这个:

final String log_child = login_text.getText().toString();
final String pass_child = pass_text.getText().toString();
mDatabase = FirebaseDatabase.getInstance().getReference("usuarios").child(log_child);

mDatabase.addValueEventListener(new ValueEventListener() {
 @Override
 public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot data : dataSnapshot.getChildren()){
        String mpass = data.getValue().toString();
        pass = mpass;
        if(pass.equals(pass_child)){
            //code here
         }
        }
   }

 @Override
 public void onCancelled(DatabaseError databaseError) {
        }
 });

添加 for 循环将使您能够从数据库中获取通行证。由于 onDatachange 是异步的(意味着它不会等到它完成检索数据,它会在它之后转到其他方法,然后当它检索数据时它会返回到方法 onDatachange) 那么你必须在方法 onDatachange

中进行比较

关于java - 比较来自 Firebase 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47738352/

相关文章:

java - Java Spring 3.0 MVC 是否像 Asp.net MVC 2.0 一样支持基于注释/属性的客户端验证?

java - org.quartz.CronExpression 类型没有可用的源代码;您是否忘记继承所需的模块?

java - 如何在 Java 中将 STRING 转换为 VARBINARY?

Android - Activity Home/向上箭头在 SDK 24 中有额外的填充/边距

android - 如何在android中的相机预览中绘制矩形

android - 当用户保持应用程序打开或处于后台时,Webview 丢失记录的用户 session

firebase - Firebase REST API 和 SDK 客户端有什么区别?以及如何为客户工作?

firebase - 独立的开发和生产 Firebase 环境

android - 找不到 com.google.firebase :firebase-analytics:

java - BufferedReader 不会从文件中读取所有行