fireabase实时数据库客户端请求已过期,我已重新启用它们,但数据库中仍然没有创建条目?

sr4lhrrt  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(245)

我正在为我的学位开发一个android应用程序,我正在使用firebase实时数据库,这个应用程序将类似于spotify,但规模较小。我被迫休息更长的时间,我的客户机对数据库的请求被自动禁用(默认为30天限制)。我已经将读写规则都改为“true”(为了使其工作,而不是安全,我将适当地更改它们)。我还附上了一些截图和代码片段来帮助你。我检查了其他堆栈问题,他们没有帮助,唯一的解决办法,我现在看到的是使另一个项目,所以基本上重新初始化整个事情与一个新的firebase项目。

private void registerUser(){
    final String email = emailField.getText().toString().trim();
    final String username = usernameField.getText().toString().trim();
    String password = passwordField.getText().toString().trim();
    String confirmPass = confirmPasswordField.getText().toString().trim();

    if(username.isEmpty()){
        usernameField.setError("Username is required");
        usernameField.requestFocus();
        return;
    }

    if(email.isEmpty()){
        emailField.setError("Email is required");
        emailField.requestFocus();
        return;
    }

    if(password.isEmpty()){
        passwordField.setError("Password is required");
        passwordField.requestFocus();
        return;
    }
    if(!Patterns.EMAIL_ADDRESS.matcher(email).matches()){
        emailField.setError("Please provide valid email");
        emailField.requestFocus();
        return;
    }

    if(password.length() < 6){
        passwordField.setError("Password length should be at least 6 characters");
        passwordField.requestFocus();
        return;
    }

    if(!password.equals(confirmPass)){
        confirmPasswordField.setError("Passwords do not match");
        confirmPasswordField.requestFocus();
        return;
    }

    progressBar.setVisibility(View.VISIBLE);
    mAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if(task.isSuccessful()){
                        User user = new User(username, email);

                        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 has registered successfully", Toast.LENGTH_LONG).show();
                                }else{
                                    Toast.makeText(RegisterActivity.this, "Registration has failed", Toast.LENGTH_LONG).show();
                                }
                                progressBar.setVisibility(View.GONE);
                            }
                        });
                    }
                }
            });
}

这是我向实时数据库注册用户的地方。它们确实显示在“身份验证”选项卡中,我可以使用它们登录,但它们不在数据库中。

{
  "rules": {
    "users": {
    ".read": "true",  
    ".write": "true",
    }
  }
}

这些是我现在正在使用的规则,目的是弄清我现在遇到的问题,我计划更改它们,以便用户只能写入属于他们的数据。
基本上我的问题归结为,如果我的客户机请求已过期,我可以做些什么来重新启用它们,以便我可以在我的实时数据库中再次有条目?这就是db

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题