Мое приложение извлекает данные из моей базы данных Firebase. Полученные данные просматриваются в TextView. Перед извлечением TextView просто показывает подсказку (имя пользователя здесь).
При написании правил в базе данных Firebase я переключил «.read» и «.write» в FALSE. Это означает, что никто не может получить доступ к данным.
Но тогда мой TextView продолжает показывать подсказку. Как получить ответ в приложении о том, что в доступе отказано, чтобы я мог создать всплывающее окно с сообщением, что ДОСТУП ОТКЛОНЕН.
Любой способ получить такое подтверждение?
{
"rules": {
".read": false,
".write": false
}
}
поэтому, когда мои правила, как указано выше. Вывод:
![enter image description here](https://i.stack.imgur.com/lT8Ml.png)
, но когда я изменяю правила на
{
"rules": {
".read": false,
".write": false
}
}
Вывод:
![enter image description here](https://i.stack.imgur.com/dSd9h.png)
Таким образом, пользователь считает, что его ca sh все еще загружается, но я хочу показать ему ошибку, которая ОТКАЗАНА В ДОСТУПЕ. Любой способ сделать это?
Мой код:
String cashOwnValue = "start";
try {
cashOwnValue = dataSnapshot.child("startCash").getValue().toString();
} catch (Throwable e) {
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
}
cashValue.setText(cashOwnValue);
Toast.makeText(getApplicationContext(), "Your balance has changed.", Toast.LENGTH_SHORT).show();
РЕДАКТИРОВАТЬ: Когда доступ запрещен, чтобы сообщить пользователю, что ваш запрос был отклонен нужно кодировать это:
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(getApplicationContext(), "Access Denied", Toast.LENGTH_LONG).show();
}
и, чтобы избежать app cra sh, если пользовательские данные не найдены, вы используете блок try-catch, как ответили ниже. (что также потребовало длительного обсуждения с @PrajwalW).