0

一般的な要件になると思っていたものに対する解決策を見つけるのに苦労しているので、何を検索するか、何を探索するかについて誰かが私を助けてくれることを願っています.

バックグラウンド

私はiOSモバイルアプリを構築しています。realm.io を使用してデータをローカルに保存しています。このアプリは、Wordpress mySQL データベースのコンテンツのスナップショットと共にプリインストールされています (カスタム タイプを使用します)。WP データベースのコンテンツは、Wordpress のインストールを介してのみ書き込まれ、モバイル アプリはデータを書き込むことができません。

目的

したがって、特定の日付以降の変更を確認し (ローカル データベースが最後に更新されたときはいつでも)、変更されたレコードをモバイル アプリに送信できるようにしたいと考えています (wp JSON API 経由で?)。

「日付以降の投稿」を取得できると思いますが、特定の日付以降のすべての作成、更新、および削除操作の完全なリストが必要です。

アプリは読み取り専用なので、このタイプの一方向同期はかなり簡単だと思いましたが、一般的な解決策が見つかりません。

私を正しい方向に向けるアイデアは素晴らしいでしょう。明らかに、realm.ioでこの種のことをした経験がある人なら、それは驚くべきことです:-)

4

1 に答える 1

1

Realm は、異なるファイル間の同期メカニズムをまだサポートしていません。ただし、それについては問題がありますが、近い将来の解決策を探している可能性があります。

更新: Realm はRealm Mobile Platformを開始しました。これにより同期機能が提供され、このユースケースのソリューションが大幅に簡素化されます。

たとえば、サーバー側の Node.js バインディングを使用して、MySQL Wordpress インストールから新しいデータを取得し、それらを Realm Object Server によって提供されるグローバルな Realm にプッシュすることができます。これは、モバイル アプリから読み取り専用で同期できます。これにより、デルタが自動的に受信され、更新されたデータがユーザーに提供されます。


それまでの間、自分で思いついたメカニズムが何であれ、新しいデータで更新できるように、iOS アプリケーションからレルム データベースへの読み取り/書き込みアクセスが必要になります。

あなたが説明したように変更されたレコードをプッシュしても、うまくいかない可能性があります。

Apple のプッシュ通知サービス (APNS) は、アプリがバックグラウンドまたは中断されているときに機能する唯一のバック通信チャネルであり、非常に小さなペイロードを送信できます。これを使用して、サーバー側で何かが変更され、ロードする新しいデータがあることを iOS アプリに通知します。次に、JSON ベースの API へのリクエストを開始し、応答を待ち、返された JSON を Realm オブジェクトにマップしてデータベースに保存します。iOS の公式アプリ プログラミング ガイドのバックグラウンド実行の章の「バックグラウンドでのコンテンツのダウンロード」
セクションで 詳細をお読みください。

アプリ バンドルからデータベースを事前にシードすることは良いアイデアのように思えますが、ユーザーはアプリをダウンロードした後に最初に待つ必要がないため、アプリ自体がデータで拡大され、将来的には完全に無関係になる可能性があります。

于 2016-05-18T17:29:52.483 に答える