Я пытаюсь сохранить объект DataSnapshot Firebase для sharedpreferences. Почему ты спрашиваешь?Как сохранить объект DataSnapshot Firebase для общих настроек?
См. this post, в котором я разработал хитрый (?) План, который включает в себя выполнение этого.
...
То, что я пытался до сих пор:
1) Использование Gson.Json method. РЕЗУЛЬТАТ: Кажется, не работает ... Я не думаю, что класс DataSnapshot является классом типа POJO ... по крайней мере, не тот, который будет работать с gson.
2) С помощью этого метода:
private static String toString(Serializable o) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(o);
oos.close();
return Base64.getEncoder().encodeToString(baos.toByteArray());
}
РЕЗУЛЬТАТ: Не работает ... Я не думаю, что класс DataSnapshot является "Сериализуемый.
Я думал о другом методе - просто сохраните DataSnapshot.toString() в Sharedpreferences ... но тогда как вы его снова получите? Вы не можете сделать:
DataSnapshot snapshot = new DataSnapshot().fromString([string from sharedprefs])
Кто-нибудь знает, как это сделать?
Thankyou!
Вы не должны сохранить большие куски ** данных ** в sharedpreferences –
Как вы знаете, насколько он велик, вы видели мою базу данных? Насколько велика большая? –
это плохой подход к хранению datasnapshot в общих предпочтениях, и это технически не является физбельным –