Java Firebase实时数据库在使用应用程序时仍然无效。怎么可能呢?它';It’真奇怪

Java Firebase实时数据库在使用应用程序时仍然无效。怎么可能呢?它';It’真奇怪,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,以下是我的Firebase实时数据库的规则: { "rules": { ".read": true, ".write": true } } RegisterActivity.java public class RegisterActivity extends AppCompatActivity { private EditText mUserName, mEmail, mPassword; p

以下是我的Firebase实时数据库的规则:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}
RegisterActivity.java

public class RegisterActivity extends AppCompatActivity {

    private EditText mUserName, mEmail, mPassword;
    private Button registerBtn;
    private TextView toLogin;
    private ProgressBar progressBar;
    private ImageView mImage;

    // Firebase stuff
    private FirebaseAuth mAuth;
    private DatabaseReference databaseReference;
    private FirebaseDatabase mDatabase;

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

        mAuth = FirebaseAuth.getInstance();

        registerBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String userName = mUserName.getText().toString();
                String email = mEmail.getText().toString();
                String password = mPassword.getText().toString();

                if(TextUtils.isEmpty(userName)) {
                    Toast.makeText(getApplicationContext(),"Username is required", Toast.LENGTH_SHORT).show();
                }
                if(TextUtils.isEmpty(email)) {
                    Toast.makeText(getApplicationContext(),"Email is required", Toast.LENGTH_SHORT).show();
                }
                if(TextUtils.isEmpty(password)) {
                    Toast.makeText(getApplicationContext(),"Password is required", Toast.LENGTH_SHORT).show();
                }
                if(userName.length() < 4) {
                    Toast.makeText(RegisterActivity.this, "Username too short", Toast.LENGTH_SHORT).show();
                }
                if (android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
                    Toast.makeText(getApplicationContext(),"Valid email address", Toast.LENGTH_SHORT).show();
                }
                if(password.length() < 8) {
                    Toast.makeText(getApplicationContext(),"Password must contain at least 8 characters", Toast.LENGTH_SHORT).show();
                }

                userRegister(email, password);
                startActivity(new Intent(getApplicationContext(), MenuActivity.class));
                finish();

            }
        });

        toLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(), LoginActivity.class));
            }
        });
    }

    private void userRegister(String email, String password) {

        final ProgressDialog progressDialog = new ProgressDialog(RegisterActivity.this,
                R.style.AppTheme_Dark_Dialog);
        progressDialog.setIndeterminate(true);
        progressDialog.setMessage("Creating account...");
        progressDialog.show();


        //register user in firebase
        mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if(task.isSuccessful()) {

                    User user = new User(email, password);
                    FirebaseDatabase.getInstance().getReference("users")
                            .child(FirebaseAuth.getInstance().getCurrentUser().getUid())
                            .setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            if(task.isSuccessful()) {
                                Toast.makeText(RegisterActivity.this, "User successful created",
                                        Toast.LENGTH_SHORT).show();
                                progressDialog.dismiss();
                            }
                            else {
                                Toast.makeText(RegisterActivity.this, "Failed to register",
                                        Toast.LENGTH_SHORT).show();
                            }
                        }
                    });
                }
                else {
                    Toast.makeText(RegisterActivity.this, "Error! " +
                            task.getException().getMessage(), Toast.LENGTH_SHORT).show();
                }
            }
        });
    }


    private void setupUI() {
        mImage = findViewById(R.id.image);
        mUserName = findViewById(R.id.userName_register);
        mEmail = findViewById(R.id.email_register);
        mPassword = findViewById(R.id.password_register);
        registerBtn = findViewById(R.id.register_button);
        toLogin = findViewById(R.id.toLogin);
        progressBar = findViewById(R.id.progress_bar_register);
    }

}

我试过很多在网上找到的东西,但都没用,也没什么变化,它仍然是空的。我是非常绝望的家伙。我是不是忘了加点什么?不幸的是,我是Android和Firebase的新手。提前感谢。

您是否通过从Firebase控制台下载google-services.json并将其放入Android Studio项目来设置应用程序

另外,您是否将应用程序的签名添加到Firebase控制台中允许的应用程序中


请参阅。

您是否通过从Firebase控制台下载google-services.json并将其放入Android Studio项目来设置应用程序

另外,您是否将应用程序的签名添加到Firebase控制台中允许的应用程序中


请参阅。

这段代码中有很多内容,而堆栈溢出是一种效率极低的交互式调试器。如果您在调试器中运行此代码,请在您期望某些行为的所有行上设置断点,哪一行是第一个不执行您期望它执行的操作的行?问题是控制台不报告任何错误,并且使用调试器并放置断点,它再次完全跳过了那些代码行:除非你告诉我们,否则我们无法知道“那些代码行”是什么。你把断点放在哪里了?你以为会发生什么?发生了什么事?我强烈推荐阅读,因为这会增加我们提供帮助的机会。这段代码中有很多内容,而堆栈溢出是一个众所周知的效率低下的交互式调试器。如果您在调试器中运行此代码,请在您期望某些行为的所有行上设置断点,哪一行是第一个不执行您期望它执行的操作的行?问题是控制台不报告任何错误,并且使用调试器并放置断点,它再次完全跳过了那些代码行:除非你告诉我们,否则我们无法知道“那些代码行”是什么。你把断点放在哪里了?你以为会发生什么?发生了什么事?我强烈推荐阅读,因为它增加了我们提供帮助的机会。是的,我添加了google-services.json文件和所有必要的依赖项是的,我添加了google-services.json文件和所有必要的依赖项
public class User {

    public String userName, email, password;

    public User() {    }

    public User(String email, String password) {
        this.email = email;
        this.password = password;
    }

    public User(String userName, String email, String password) {
        this.userName = userName;
        this.email = email;
        this.password = password;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}