Я пытаюсь интегрировать Firebase в свое приложение для Android. Я выполнил действия, задокументированные пожарной базой.Когда я пытаюсь отправить данные, я не могу отправить.Я получаю ниже ошибку в обратном вызове
**Permission denied**
И код ошибки в обратном вызове -3
Я искал относительные ответы по переполнению стека во многих местах, и этоне работал для меня.Поскольку это очень известный поток
Отказано в разрешении Firebase
В этой теме упоминается, что мне нужно добавить приведенный ниже код в раздел базы данных, где определены правила.Ниже приведен код
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
Когда я пошел в то место, которое упоминалось в этой теме ( пошел в раздел базы данных, а затем в область правил ), я уже нашел какой-то фрагмент кода.И этот код указан ниже
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
Моя проблема в том, что я получаю ошибку «Отказано в доступе» при подключении базы данных.Когда я добавляю код, упомянутый в потоке, база Fire не распознает этот код.Как правильно разместить код, если есть необходимость?Или почему я получаю эту ошибку?Я что-то упустил.
Ниже приведен код, который я использую для связи с firebase
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
mDatabaseReference = FirebaseDatabase.getInstance().getReference();
DatabaseReference databaseReference = mDatabaseReference.child("users");
//Get Firebase auth instance
//auth = FirebaseAuth.getInstance();
btnSignIn = findViewById(R.id.sign_in_button);
btnSignUp = findViewById(R.id.sign_up_button);
inputEmail = findViewById(R.id.email);
inputPassword = findViewById(R.id.password);
progressBar = findViewById(R.id.progressBar);
btnResetPassword = findViewById(R.id.btn_reset_password);
btnResetPassword.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//startActivity(new Intent(SignupActivity.this, ResetPasswordActivity.class));
}
});
btnSignIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
btnSignUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = inputEmail.getText().toString().trim();
String password = inputPassword.getText().toString().trim();
if (TextUtils.isEmpty(email)) {
Toast.makeText(getApplicationContext(), "Enter email address!", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(getApplicationContext(), "Enter password!", Toast.LENGTH_SHORT).show();
return;
}
if (password.length() < 6) {
Toast.makeText(getApplicationContext(), "Password too short, enter minimum 6 characters!", Toast.LENGTH_SHORT).show();
return;
}
progressBar.setVisibility(View.VISIBLE);
User user = new User();
user.setEmail(email);
user.setPassword(password);
user.setUserType(1);
mDatabaseReference.child("users").setValue(user, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(@Nullable DatabaseError databaseError, @NonNull DatabaseReference databaseReference) {
progressBar.setVisibility(View.GONE);
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
dataSnapshot.exists();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
databaseError.getCode();
}
});
}
});
}
});
}
ПРИМЕЧАНИЕ: Ошибка setValue в / users: DatabaseError: В доступе отказано этожурнал я получаю.