Firepaces DataSnapshotオブジェクトをsharedpreferencesに保存しようとしています。なぜ聞くの?FirebaseのDataSnapshotオブジェクトを共有設定に保存するにはどうすればいいですか?
this postを参照してください。これには、私がこれを行う狡猾な(?)計画を考案しました。
...私がこれまで試してみました何:Gson.Json methodを使用して
1)。結果:うまくいかないようです...私はDataSnapshotクラスが "POJO"型クラスではないと思います...少なくともgsonで動作するクラスはありません。
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());
}
結果::このメソッドを使用して
2)は動作しません...私はDataSnapshotクラスは、 '直列化可能' であるとは思いません。
私は別の方法を考えました - DataSnapshot.toString()をSharedpreferencesに保存するだけですが、どうやってそれをもう一度取り戻すのですか?あなたはできません:
DataSnapshot snapshot = new DataSnapshot().fromString([string from sharedprefs])
これを行う方法を知っている人はいますか?
ありがとうございました!
あなたは、あなたはそれがどのように大きな知っているあなたは私のデータベースを見てきたどのようにsharedpreferences –
で**データ**の大きな塊を保存することになっていませんか?どのくらいの大きさが大きすぎますか? –
これはdatasnapshotを共有プリファレンスに格納する悪い方法です。これは技術的にはフィスブルではありません –