2

アプリで MongoDB Realm を使用しています。

ユーザーがアプリに初めて接続すると、ProgressNotifcation コールバックが正しくトリガーされ、新しいダウンロードが来るたびに機能してトリガーされます。保留中のダウンロードがない場合でも、ProgressNotification コールバックが少なくとも 1 回 (作成時に) トリガーされます (コールバックの Progress オブジェクト パスには、最後のダウンロードからの値が含まれます)。これは、ユーザーの最初のデータセットをダウンロードしているためだと思います。

ただし、アプリを強制終了して再度起動すると、アプリが新しいデータを受信するまで、ProgressNotification コールバックはトリガーされなくなります。この時点から、コールバックは必要になるたびに呼び出されます。

現在、フレームワークは、アプリが起動されてから、必要なたびに ProgressNotification コールバックをトリガーするための最初のダウンロードが必要なようです。

これは、以前のバージョンの Realm (5.XX) で機能していました。Realm 10 への移行を完了したばかりで、この問題を発見しました。これが意図した変更なのか、それとも私の側のバグなのかわかりません。しかし、これが以前のバージョンの SDK で機能していたことは確かです。

誰でもこれで私を助けることができますか?ありがとう

注: これは両方のモードで動作しなくなりました: .forCurrentlyOutstandingWork と .reportIndefinitely

self.token = syncSession.addProgressNotification(for: .download, mode: .forCurrentlyOutstandingWork) { progress in
                           .......Some code........   <- this part of the code is not triggered anymore
}

編集-2020年12月21日

明確にするために、返されるトークンには値が含まれており、.invalidate は呼び出されていません。

セッションにエラーはなく、新しいダウンロードによってコールバックがトリガーされます。最初のダウンロード後、すべてが期待どおりに機能します。これは、後で progressNotifcation を追加すると、コールバックが直前のダウンロードの進行状況ですぐにトリガーされることを意味します。ただし、最初のダウンロードがない場合、コールバックは呼び出されません。

スコープについては、このメソッドは実際には私が作成したカスタム パブリッシャーにあり、割り当てが解除されていません。

レルム 10.5.0

iOS 14.3

4

0 に答える 0