Hướng dẫn mongodb realm sync tutorial - hướng dẫn đồng bộ hóa lĩnh vực mongodb
DOCS Home → Dịch vụ ứng dụng Atlas → Atlas App Services Các tài nguyên trên trang này được thiết kế để giúp bạn bắt đầu sử dụng Dịch vụ ứng dụng Atlas. Để khám phá cơ sở mã hoạt động hiển thị các tính năng của Dịch vụ ứng dụng, hãy xem một ứng dụng mẫu. Để có trải nghiệm có hướng dẫn hơn trong việc học cách phát triển với các dịch vụ ứng dụng và vương quốc, hãy bắt đầu với một hướng dẫn. Dịch vụ ứng dụng Bootstrap với một ứng dụng mẫu. Các ứng dụng mẫu tập hợp nhiều khối xây dựng có sẵn trong các dịch vụ ứng dụng Atlas và bắt đầu bạn với một ứng dụng được xây dựng sẵn mà bạn có thể tùy chỉnh. Các ứng dụng mẫu sau có sẵn:
Kiểm tra các ứng dụng mẫu hoặc truy cập phần Hướng dẫn để biết hướng dẫn của một ứng dụng mẫu. Kiểm tra các ứng dụng mẫu Hướng dẫn cung cấp một hướng dẫn từng bước chi tiết để phát triển các ứng dụng sử dụng các tính năng dịch vụ ứng dụng. Ứng dụng mẫu iOS với Swiftui Phát triển một ứng dụng danh sách việc cần làm iOS đồng bộ hóa dữ liệu bằng SDK SDK và Đồng bộ hóa thiết bị Swift. Ứng dụng mẫu Android với Kotlin Phát triển một ứng dụng danh sách việc cần làm Android đồng bộ hóa dữ liệu bằng SDK và thiết bị Kotlin. Ứng dụng mẫu Xamarin với C# Phát triển một ứng dụng danh sách việc cần làm đa nền tảng đồng bộ hóa dữ liệu bằng cách sử dụng .NET SDK và đồng bộ hóa thiết bị. Phản ứng ứng dụng mẫu gốc với javascript Phát triển một ứng dụng danh sách việc cần làm đa nền tảng đồng bộ hóa dữ liệu bằng SDK tự nhiên phản ứng và đồng bộ hóa thiết bị. Ứng dụng Mẫu Flutter với Dart Phát triển một ứng dụng danh sách việc cần làm đa nền tảng đồng bộ hóa dữ liệu bằng cách sử dụng SDK và đồng bộ hóa thiết bị Flutter. GitHub vấn đề theo dõi Xây dựng một ứng dụng không có máy chủ để theo dõi hoạt động GitHub. Giới thiệuVào tháng 1 năm 2022, chúng tôi đã công bố phát hành bản xem trước Sync linh hoạt của Realm, một cơ hội để các nhà phát triển đưa nó vào một vòng quay và cung cấp cho chúng tôi phản hồi. Đồng bộ hóa linh hoạt hiện có sẵn như là một phần của đồng bộ hóa thiết bị Atlas MongoDB. Bài viết đó cung cấp một cái nhìn tổng quan về lợi ích của đồng bộ hóa linh hoạt và cách thức hoạt động của nó. TL; DR: Bạn thường không muốn đồng bộ hóa toàn bộ cơ sở dữ liệu phụ trợ cho mọi thiết bị cho dù có phải là mối quan tâm về năng lực hay bảo mật. Đồng bộ hóa linh hoạt cho phép nhà phát triển cung cấp các truy vấn để kiểm soát chính xác những gì ứng dụng di động yêu cầu đồng bộ hóa, cùng với các quy tắc phụ trợ để đảm bảo người dùng chỉ có thể truy cập dữ liệu mà họ có quyền.release of the Realm Flexible Sync preview—an opportunity for developers to take it for a spin and give us feedback. Flexible Sync is now Generally Available as part of MongoDB Atlas Device Sync. That article provided an overview of the benefits of flexible sync and how it works. TL;DR: You typically don't want to sync the entire backend database to every device—whether for capacity or security concerns. Flexible Sync lets the developer provide queries to control exactly what the mobile app asks to sync, together with backend rules to ensure users can only access the data that they're entitled to. Bài đăng này xây dựng dựa trên phần giới thiệu đó bằng cách chỉ ra cách thêm đồng bộ hóa linh hoạt vào ứng dụng di động RCHAT. Tôi sẽ chỉ ra cách định cấu hình ứng dụng Atlas phụ trợ và sau đó mã cần thêm mã nào vào ứng dụng di động. Điều kiện tiên quyếtỨng dụng RCHATRCHAT là một ứng dụng nhắn tin. Người dùng có thể thêm người dùng khác vào phòng trò chuyện và sau đó chia sẻ tin nhắn, hình ảnh và vị trí với nhau. Tất cả dữ liệu tin nhắn người dùng và trò chuyện được chia sẻ giữa các trường hợp của ứng dụng thông qua đồng bộ hóa thiết bị Atlas. Có một ứng dụng phụ trợ Atlas phổ biến. Có các ứng dụng Frontend cho iOS và Android. Bài đăng này tập trung vào phần phụ trợ và ứng dụng iOS. Định cấu hình ứng dụng phụ trợ RealmỨng dụng phụ trợ chứa rất nhiều chức năng không được kết nối với chức năng đồng bộ hóa và vì vậy tôi sẽ không bao gồm điều đó ở đây. Nếu bạn quan tâm, thì hãy xem loạt RCHAT gốc.original RChat series. Như một điểm bắt đầu, bạn có thể cài đặt ứng dụng. Sau đó, tôi sẽ giải thích các bộ phận được kết nối với đồng bộ hóa thiết bị Atlas. Nhập ứng dụng Atlas phụ trợ
Cách đồng bộ hóa linh hoạt được bật ở phía sauLược đồ Lược đồ thể hiện cách dữ liệu sẽ được lưu trữ trong các lớp mô hình MongoDB Atlas *và- những gì mà các mô hình Swift (và Kotlin) phải chứa.and- what the Swift (and Kotlin) model classes must contain. Mỗi bộ sưu tập/lớp yêu cầu một lược đồ. Nếu bạn bật tùy chọn "Chế độ phát triển", thì Atlas sẽ tự động xác định lược đồ dựa trên các lớp mô hình Swift hoặc Kotlin của bạn. Trong trường hợp này, Chúng tôi quan tâm đến lược đồ cho ba bộ sưu tập/lớp mô hình:
Thiết bị đồng bộ hóa cho phép bạn kiểm soát người dùng nào có thể đồng bộ hóa tài liệu nào. Khi bài viết này được xuất bản lần đầu tiên, bạn không thể đồng bộ hóa chỉ là một tập hợp con của các trường tài liệu. Đó là lý do tại sao Có một đối tượng tài liệu Cấu hình đồng bộ linh hoạt Bạn có thể xem và chỉnh sửa cấu hình đồng bộ bằng cách duyệt vào phần "đồng bộ hóa" của Atlas UI: Đối với việc triển khai này, tôi đã chọn cụm Atlas để sử dụng. Cụm đó phải chạy MongoDB 5.0 trở lên.That cluster must be running MongoDB 5.0 or later. Bạn phải chỉ định trường nào ứng dụng di động có thể sử dụng trong các truy vấn bộ lọc đồng bộ hóa của nó. Không có điều này, bạn không thể tham khảo các trường đó trong các truy vấn hoặc quyền đồng bộ của bạn. Bạn hiện đang giới hạn trong 10 lĩnh vực. Cuộn xuống, bạn có thể thấy các quyền đồng bộ hóa: UI đã làm phẳng tài liệu JSON quyền; Đây là phiên bản dễ đọc hơn: Thành phần
Thêm đồng bộ hóa linh hoạt vào ứng dụng iOSNhư với phần cuối, ứng dụng iOS quá lớn để bao gồm toàn bộ trong bài đăng này. Tôi sẽ giải thích cách xây dựng và chạy ứng dụng và sau đó đi qua các thành phần liên quan đến đồng bộ hóa linh hoạt. Định cấu hình, xây dựng và chạy ứng dụng RCHAT iOSBạn đã tải xuống repo chứa ứng dụng iOS, nhưng bạn cần thay đổi thư mục trước khi mở và chạy ứng dụng: Cập nhật Trên mỗi thiết bị, cung cấp tên người dùng và mật khẩu và chọn hộp kiểm "Đăng ký người dùng mới": Sau khi đăng ký và đăng nhập trên cả hai thiết bị, bạn có thể tạo một phòng trò chuyện mới, mời người dùng thứ hai của mình và bắt đầu chia sẻ tin nhắn và ảnh. Để chia sẻ vị trí, trước tiên bạn cần bật nó trong cài đặt của ứng dụng. Các phần chính của mã ứng dụng iOSNgươi mâu Bạn đã thấy các lược đồ được xác định cho các bộ sưu tập "người dùng", "Chatster" và "Chatmessage" trong ứng dụng Atlas phía sau. Mỗi bộ sưu tập đó có một lớp Realm Hãy xem xét kỹ từng lớp này: Truy cập dữ liệu realm được đồng bộ hóa Bất kỳ ứng dụng iOS nào cũng muốn đồng bộ hóa dữ liệu Realm cần tạo phiên bản Realm Khi chế độ xem swiftui (trong trường hợp này,
Biến người dùng là một truy vấn trực tiếp chứa tất cả các đối tượng Thật dễ dàng để sửa chữa. Chúng tôi tạo một chức năng mới ( Đăng ký được đặt tên để làm cho chúng dễ làm việc hơn. Tôi đặt tên cho cái này Chức năng kiểm tra xem đã có đăng ký có tên Đăng ký phải đồng bộ hóa chính xác một đối tượng Các quan điểm khác hoạt động với các lớp mô hình khác nhau và truy vấn đồng bộ hóa. Ví dụ: khi người dùng nhấp vào phòng trò chuyện, chế độ xem mới được mở hiển thị tất cả các ____99 cho cuộc trò chuyện đó: Trong trường hợp này, truy vấn đồng bộ hóa tất cả các đối tượng Sau đó, cơ thể của chế độ xem có thể lặp lại tất cả các đối tượng được đồng bộ hóa, phù hợp: Khi nó đứng, có một số hành vi khó chịu. Nếu bạn mở cuộc trò chuyện a, quay lại và sau đó mở cuộc trò chuyện B, ban đầu bạn sẽ thấy tất cả các tin nhắn từ cuộc trò chuyện A. Lý do là phải mất một thời gian ngắn để đăng ký cập nhật để thay thế các đối tượng Tôi đã đưa ra một quyết định thiết kế rằng tôi sẽ sử dụng cùng một tên ("cuộc trò chuyện") cho quan điểm này, bất kể phòng trò chuyện/phòng trò chuyện nào mà nó đang làm việc. Một giải pháp thay thế sẽ là tạo một thuê bao độc đáo bất cứ khi nào một phòng trò chuyện mới được mở (bao gồm cả ID của cuộc trò chuyện trong tên). Sau đó, tôi có thể tránh loại bỏ đăng ký khi điều hướng ra khỏi phòng trò chuyện. Cách tiếp cận thứ hai này sẽ đi kèm với hai lợi thế:
Những nhược điểm của phương pháp này sẽ là:
Cách tiếp cận thứ ba sẽ là gắn bó với một thuê bao duy nhất (được đặt tên là "Cuộc trò chuyện") phù hợp với mọi đối tượng Lưu ý rằng người dùng khác có thể đăng nhập vào ứng dụng từ cùng một thiết bị. Bạn không muốn người dùng đó được chào đón với dữ liệu của người khác. Để tránh điều đó, ứng dụng sẽ xóa tất cả các đăng ký khi người dùng đăng xuất: Sự kết luậnTrong bài viết này, bạn đã thấy cách bao gồm đồng bộ hóa linh hoạt trong ứng dụng di động của mình. Tôi đã hiển thị mã cho Swift, nhưng cách tiếp cận sẽ giống nhau khi xây dựng các ứng dụng với Kotlin, JavaScript hoặc .NET. Vì bài đăng này ban đầu được phát hành, đồng bộ hóa linh hoạt đã phát triển để bao gồm nhiều nhà khai thác truy vấn và cho phép hơn. Ví dụ: các toán tử mảng (sẽ cho phép tôi thêm các hạn chế chặt chẽ hơn về người có thể yêu cầu đọc tin nhắn trò chuyện nào). Bây giờ bạn có thể giới hạn các trường nào từ một tài liệu được đồng bộ hóa với một người dùng nhất định. Điều này có thể cho phép loại bỏ bộ sưu tập Bạn muốn đề xuất một nâng cao hoặc bỏ phiếu cho một yêu cầu hiện có? Cách hiệu quả nhất là thông qua cổng thông tin phản hồi của chúng tôi.feedback portal. |