Я пытаюсь найти лучший способ для синхронизации c данных из SharedPrefs, но идей нет.
Я пытаюсь использовать собственный способ, и он действительно работает. У меня есть несколько файлов в Prefs: файл «Sets», который содержит некоторые данные и информацию об именах других Prefs. Таким образом, я сначала должен поместить данные из «Sets», а затем поместить данные из его дочерних элементов.
Таким образом, у нас слишком много запросов к Firebase. Но у Firebase есть месячный лимит бесплатных запросов. Таким образом, важно сделать один большой запрос вместо нескольких запросов.
SharedPreferences Sets = getSharedPreferences("Sets", MODE_PRIVATE);
FirebaseFirestore db = FirebaseFirestore.getInstance();
Map<String, Object> mainSPRowData = (Map<String, Object>) Sets.getAll();
Map<String, Object> mainSP = new HashMap<>();
mainSP.put("ACTIVE_USER", mainSPRowData.get("ACTIVE_USER"));
mainSP.put("USERS_COUNT", mainSPRowData.get("USERS_COUNT"));
DocumentReference documentReference = db.collection("users").document(mAuth.getCurrentUser().getEmail()).collection("Sets").document("MainSet");
documentReference.set(mainSP);
for (String row : (HashSet<String>)mainSPRowData.get("USERS")) {
SharedPreferences sp = getSharedPreferences(row, MODE_PRIVATE);
documentReference.getParent().document(row).set(sp);
}
Как мы можем?
Моя схема Firestore:
Firestore-root
|
--- users (collections)
| |
| --- email: mymail@google.com(document)
| |
| --- Sets(colletion)
| |
| --- MainSet
| |
| ---ACTIVE_USER: "3"
| ---USERS_COUNT: "21"
| --- user1
| --- user2
| ...
| --- usern