我正在为我的学位开发一个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
暂无答案!
目前还没有任何答案,快来回答吧!