-  Есть ли способ очистить данные, хранящиеся в базе данных Firebase, через setPersistenceEnabled(true)?
- Или в конечном итоге предотвратить доступ к чтению ранее сохраненных данных пользователей на устройстве?
- И дополнительный вопрос - есть ли способ проверить, ждут ли какие-либо данные для синхронизации?
В моем приложении я хочу очистить db, когда пользователь выходит из системы, и он подтверждает, что несинхронизированные изменения будут удалены. Это приложение будет использоваться на планшете многими людьми, и на каждого пользователя будет храниться много данных, поэтому я хочу удалить ненужные данные, хранящиеся на устройстве, чтобы:
- сокращение использования хранилища
- Предотвращение несанкционированного чтения пользователями данных.
Это ошибка безопасности, потому что любой пользователь, независимо от того, подписан ли он или нет, имеет доступ для чтения ко всем ранее загруженным данным! К счастью, у нас нет доступа для записи.
Я попытался очистить db самостоятельно, как в автономном режиме, так и в режиме онлайн, но данные все еще сохраняются на устройстве:
// first clear all data on my own
FirebaseDatabase db = FirebaseDatabase.getInstance();
db.goOffline(); // even when I clear db in online mode data persist on mobile device
db.getReference().setValue(null);
// and then logout
FirebaseAuth.getInstance().signOut();
db.goOnline();
например, структура данных:
{
  "someList": {
    "userId1": {
      "itemId11": {
        "name": "name 11"
      },
      "itemId12": {
        "name": "name 12"
      },
      ...
      "itemId1N": {
        "name": "name 1N"
      }
    }
    "userId2": {
      "itemId21": {
        "name": "name 21"
      },
      "itemId22": {
        "name": "name 22"
      },
      ...
      "itemId2N": {
        "name": "name 2N"
      }
    }
  }
}
мои правила:
{
  "rules": {
    ".read": "false",
    ".write": "false",
    "someList": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
  }
}
