Java 未执行Firebase onDataChange

Java 未执行Firebase onDataChange,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我想从Firebase实时数据库获取数据,但onDataChange()方法看起来好像没有执行。我设置了一些断点,但它似乎从未进入onDataChange()。这是数据库数据 { "User" : { "0988123344" : { "Name" : "Eddy", "Password" : "1234" } } } 我还检查

我想从Firebase实时数据库获取数据,但onDataChange()方法看起来好像没有执行。我设置了一些断点,但它似乎从未进入onDataChange()。这是数据库数据

{
  "User" : {
    "0988123344" : {
      "Name" : "Eddy",
      "Password" : "1234"
    }
  }
}
我还检查了Logcat,没有错误

    Button btnSignIn;
    final FirebaseDatabase database = FirebaseDatabase.getInstance();
    final DatabaseReference table_user = database.getReference("User");

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sign_in);

        edtPassword = (MaterialEditText)findViewById(R.id.edtPassword);
        edtPhone = (MaterialEditText)findViewById(R.id.edtPhone);
        btnSignIn = (Button)findViewById(R.id.sbtnSignIn);
    }

    @Override
    protected void onStart() {
        super.onStart();
        btnSignIn.setOnClickListener(v -> table_user.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                User user = snapshot.child(edtPhone.getText().toString()).getValue(User.class);
                if(user.getPassword().equals(edtPassword.getText().toString())){
                    Toast.makeText(SignIn.this,"Success!",Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(SignIn.this,"fail!",Toast.LENGTH_SHORT).show();
                }
            }
            @Override
            public void onCancelled(@NonNull DatabaseError error) {
            }
        }));
    }
这就是用户

    private String Name;
    private String Password;

    public User(String name, String password) {
        Name = name;
        Password = password;
    }

    public User() {
    }

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    public String getPassword() {
        return Password;
    }

    public void setPassword(String password) {
        Password = password;
    }
}
使用此代码

reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {

                for (DataSnapshot dataSnapshot : snapshot.getChildren()) {
                    User user = dataSnapshot.getValue(User.class);
                    Toast.makeText(MainActivity.this, "name: "+user.getName(), Toast.LENGTH_SHORT).show();
                    Toast.makeText(MainActivity.this, "password: "+user.getPassword(), Toast.LENGTH_SHORT).show();
                }

            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {

            }
        });

在onCreate方法中执行此任务

在onCreate方法中执行此任务我尝试过,不起作用OK,请指定要在数据库结构中执行的操作我只想将数据从firebase获取到该用户对象中。这里有一幅数据库结构图。首先,停止忽略错误。使用Log.d(标记,error.getMessage())。你有没有在航海日志上打印出来?还请编辑您的问题,并将您的数据库结构添加为JSON文件。您只需单击溢出菜单中的导出JSON即可获得它(⠇) 在您的.Please中,请使用@AlexMamoI在onCreate中使用了您的代码,但仍然不起作用。从未进入onDataChange(),il表现为firebase未正确配置,但在日志中有一个“FirebaseApp初始化成功”。您是否检查FirebaseApp中的规则这些规则是{“规则”:{.read”:true,“.write”:true}