Firebase Remote Config mang lại nhiều sự linh hoạt về cách thức và thời điểm
tìm nạp các giá trị mới từ máy chủ và kích hoạt các giá trị đó trong ứng dụng của bạn, giúp bạn
đảm bảo trải nghiệm chất lượng cho người dùng cuối bằng cách kiểm soát thời điểm của mọi thay đổi về
cấu hình hiển thị. Bạn có thể tìm nạp các giá trị mới khi khởi chạy ứng dụng bằng
fetchAndActivate và sử dụng theo thời gian thực
Remote Config như một phương thức bổ sung
để tự động tìm nạp các giá trị tham số mới nhất sau khi bạn xuất bản phiên bản mới của Remote Config.
Hướng dẫn này xem xét một vài chiến lược tải và thảo luận về những điểm cần cân nhắc chính để chọn phương án tốt nhất cho ứng dụng của bạn.
Chiến lược 1: Tìm nạp và kích hoạt khi tải
Trong chiến lược này, ứng dụng của bạn sẽ gọi fetchAndActivate() khi ứng dụng khởi động lần đầu để tìm nạp các giá trị mới từ Remote Config và kích hoạt các giá trị đó ngay khi tải xong. Phương pháp đơn giản này hoạt động hiệu quả đối với những thay đổi về cấu hình không gây ra bất kỳ thay đổi đáng kể nào về mặt hình ảnh trong giao diện người dùng. Tránh sử dụng phương pháp này trong mọi trường hợp mà giao diện người dùng có thể thay đổi đáng kể khi người dùng đang sử dụng.
Sau khi ứng dụng của bạn gọi fetchAndActivate(), ứng dụng có thể bắt đầu theo dõi các bản cập nhật giá trị tham số theo thời gian thực bằng cách gọi addOnConfigUpdateListener. Phương thức này bắt đầu theo dõi mọi bản cập nhật phía máy chủ đối với các giá trị tham số, tự động tìm nạp các giá trị đó, sau đó gọi trình nghe. Một chiến lược đơn giản là kích hoạt các giá trị mới trong trình nghe. Tuy nhiên, như đã đề cập đối với fetchAndActivate(), bạn nên tránh kích hoạt ngay lập tức đối với các giao diện người dùng nhạy cảm.
Chiến lược 2: Kích hoạt phía sau màn hình tải
Để khắc phục vấn đề tiềm ẩn về giao diện người dùng gặp phải trong chiến lược 1, bạn có thể dựa vào màn hình tải. Thay vì khởi động ứng dụng ngay lập tức, hãy hiển thị màn hình tải và gọi fetchAndActivate trong trình xử lý hoàn tất. Sau đó, ngay sau đó (một lần nữa bằng cách sử dụng lệnh gọi lại hoặc thông báo), hãy đóng màn hình tải và cho phép người dùng bắt đầu tương tác với ứng dụng của bạn.
Nếu bạn sử dụng chiến lược này, bạn nên thêm thời gian chờ vào màn hình tải. Thời gian chờ một phút của Remote Config có thể quá dài để mang lại trải nghiệm khởi động ứng dụng chất lượng cho người dùng.
Việc theo dõi các bản cập nhật Remote Config theo thời gian thực bằng cách gọi
addOnConfigUpdateListener hoạt động hiệu quả với chiến lược này. Thêm trình nghe khi
màn hình tải được hiển thị, sau đó sử dụng activate() tại một hoặc nhiều điểm trong
ứng dụng mà Remote Config giá trị sẽ không gây ra những thay đổi đáng kể về mặt hình ảnh.
Chiến lược 3: Tải các giá trị mới cho lần khởi động tiếp theo
Một chiến lược hiệu quả là tải các giá trị cấu hình mới để kích hoạt trong lần khởi động tiếp theo của ứng dụng. Trong chiến lược này, ứng dụng của bạn sẽ kích hoạt các giá trị đã tìm nạp khi khởi động trước khi cố gắng tìm nạp các giá trị mới, dựa trên giả định rằng ứng dụng có thể đã tìm nạp (nhưng chưa kích hoạt) các giá trị cấu hình mới. Thứ tự hoạt động của chiến lược này là:
- Khi khởi động, hãy kích hoạt ngay các giá trị đã tìm nạp trước đó. Thao tác này sẽ áp dụng mọi giá trị mà bạn đã tải xuống từ máy chủ trong phiên trước và gần như diễn ra ngay lập tức.
- Trong khi người dùng tương tác với ứng dụng của bạn, hãy bắt đầu một lệnh gọi không đồng bộ để tìm nạp các giá trị mới theo khoảng thời gian tìm nạp tối thiểu mặc định và thêm trình nghe cập nhật cấu hình theo thời gian thực. Trình nghe theo thời gian thực sẽ tự động tìm nạp mọi giá trị được xuất bản trên máy chủ trong khi ứng dụng của bạn đang chạy. Các bản cập nhật theo thời gian thực sẽ bỏ qua chế độ cài đặt khoảng thời gian tìm nạp tối thiểu.
- Trong trình xử lý hoàn tất hoặc lệnh gọi lại cho lệnh gọi tìm nạp, đừng làm gì cả. Ứng dụng của bạn sẽ giữ các giá trị đã tải xuống cho đến khi bạn kích hoạt các giá trị đó vào lần tiếp theo ứng dụng khởi động.
Với chiến lược này, thời gian chờ của người dùng sẽ giảm đi đáng kể. Việc kết hợp các chiến lược tìm nạp và
trình nghe theo thời gian thực với activate() khi cần trong vòng đời của ứng dụng sẽ đảm bảo người dùng có các giá trị mới nhất từ Remote Config khi họ
tương tác với ứng dụng của bạn.
Chiến lược chống tải
Dựa trên các phần trước của chiến lược tải, hãy tránh các mẫu sử dụng sau:
- Không cập nhật hoặc chuyển đổi các khía cạnh của giao diện người dùng trong khi người dùng đang xem hoặc tương tác với giao diện người dùng đó — trừ phi bạn có lý do chính đáng về ứng dụng hoặc doanh nghiệp để làm như vậy, chẳng hạn như xoá các lựa chọn liên quan đến chương trình khuyến mãi vừa kết thúc.
- Không gửi số lượng lớn yêu cầu tìm nạp đồng thời, điều này có thể khiến máy chủ điều tiết ứng dụng của bạn. Nếu bạn cần tìm nạp các bản cập nhật thường xuyên, hãy sử dụng Remote Config theo thời gian thực Remote Config. Mặc dù nguy cơ điều tiết là thấp trong hầu hết các trường hợp sản xuất, nhưng đây có thể là vấn đề trong quá trình phát triển đang hoạt động và Remote Config theo thời gian thực được thiết kế cho trường hợp sử dụng này. Hãy xem hướng dẫn điều tiết.
- Không dựa vào khả năng kết nối mạng để lấy các giá trị Remote Config. Hãy đặt các giá trị tham số mặc định trong ứng dụng để ứng dụng của bạn luôn hoạt động như mong đợi. Bạn có thể định kỳ đồng bộ hoá các giá trị mặc định của ứng dụng và Remote Config phần phụ trợ Remote Config bằng cách sử dụng các giá trị mặc định của mẫu đã tải xuống.
Các bước tiếp theo
Ba chiến lược cơ bản này không phải là danh sách đầy đủ các cách tải giá trị cấu hình. Tuỳ thuộc vào nhu cầu của bạn, bạn có thể đưa ra các chiến lược phức tạp hơn nhiều.
Hãy xem tài liệu tham khảo API cho nền tảng của bạn để tìm hiểu thêm về các lệnh gọi cụ thể để tìm nạp và kích hoạt các giá trị cấu hình.