Tôi nghĩ rằng toàn bộ thời gian khi tôi sử dụng tất cả dữ liệu sau đây cho cuộc hội thoại trò chuyện sẽ khả dụng ngoại tuyến bất cứ lúc nào. Mà bằng cách nào đó không phải là và tất cả các nút được tải từ máy chủ.Firebase: Sự khác nhau giữa setPersistenceEnabled và keepSynced là gì?
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
Sau đó, theo DOCS:
Persistence Hành vi: Bằng cách cho phép kiên trì, bất kỳ dữ liệu mà chúng ta đồng bộ trong khi trực tuyến sẽ được tiếp tục tồn vào đĩa và có sẵn trực tuyến, ngay cả khi chúng ta khởi động lại ứng dụng. Điều này có nghĩa là ứng dụng của chúng tôi sẽ hoạt động vì nó sẽ trực tuyến bằng cách sử dụng dữ liệu cục bộ được lưu trữ trong bộ nhớ cache.
Nếu dữ liệu sẽ khả dụng khi ngoại tuyến setPersistenceEnabled(true);
, tại sao tôi cần keepSynced(true)
?
DatabaseReference r = FirebaseDatabase.getInstance().getReference("chat/roomid");
r.keepSynced(true);
FirebaseDatabase.getInstance(). SetPersistenceEnabled (true); không làm cho trò chuyện có sẵn cho ngoại tuyến – Gattsu
@ maveň, kiểm tra câu trả lời bên dưới và làm rõ của tôi trên đó. – mradzinski
@Frank van Puffelen nếu kiên trì được kích hoạt và ứng dụng bị chấm dứt, sau đó ứng dụng chạy Firebase sao chép toàn bộ cơ sở dữ liệu từ máy chủ sang bộ nhớ và đĩa, hay sao chép các mục đó từ máy chủ đã thay đổi? I E. nó có thể cho biết đồng bằng giữa dữ liệu trên đĩa thiết bị và dữ liệu trong máy chủ và chỉ di chuyển dữ liệu delta đến thiết bị cầm tay là gì? – Gruntcakes