問題タブ [mongodb-realm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - MongoDB レルム vs. スティッチ ログイン時間 - レルムが遅いのはなぜですか?
Atlas でホストされ、 Stitch経由で接続された MongoDB データベースを使用して Web ツールを構築しました。私の理解では、Stitch は減価償却され、MongoDB Realmになりました。そこで、Stitch の代わりに新しい Realm アプリを使用して、サイトを更新しようとしました。動作はしますが、匿名ログインは何らかの理由で非常に遅くなりました。MongoDB ドキュメントで提案されているコードを使用して、いくつかの簡単なテストを行いました。
ログインするのに信じられないほど時間がかかります1200 ms
。
古いStitchアプリでは、通常、20 ms
ログインに時間がかかります.
ここで何が起こっているのか、またはこれを解決する方法はありますか? ドキュメントに記載されているように、最初にユーザーを認証する可能性があることは知っていますが、それを試してみましたが、同じくらい遅いです。
実際に新しい Realm アプリに更新する必要はありますか? たとえば、古い Stitch の実装はそう遠くない将来に機能しなくなりますか? それに関する情報をいただければ幸いです;)
更新: もう少し調査を行いましたが、Realm が遅い理由は、使用してログインするlogIn(Realm.Credentials.anonymous()).then(() => ...
と 2 つの Post 要求が発生するのに対し、使用auth.loginWithCredential(new stitch.AnonymousCredential()).then(() => ...
すると認証とコンテンツのダウンロードがすべて 1 つの要求で行われるという事実にあるようです。Realm では 500 ~ 700 ミリ秒の TTFB 待機時間が 2 回発生しますが、Stitch では 1 回だけ発生します。
realm - Realm 10 で最初のダウンロードがないと ProgressNotification コールバックがトリガーされない
アプリで MongoDB Realm を使用しています。
ユーザーがアプリに初めて接続すると、ProgressNotifcation コールバックが正しくトリガーされ、新しいダウンロードが来るたびに機能してトリガーされます。保留中のダウンロードがない場合でも、ProgressNotification コールバックが少なくとも 1 回 (作成時に) トリガーされます (コールバックの Progress オブジェクト パスには、最後のダウンロードからの値が含まれます)。これは、ユーザーの最初のデータセットをダウンロードしているためだと思います。
ただし、アプリを強制終了して再度起動すると、アプリが新しいデータを受信するまで、ProgressNotification コールバックはトリガーされなくなります。この時点から、コールバックは必要になるたびに呼び出されます。
現在、フレームワークは、アプリが起動されてから、必要なたびに ProgressNotification コールバックをトリガーするための最初のダウンロードが必要なようです。
これは、以前のバージョンの Realm (5.XX) で機能していました。Realm 10 への移行を完了したばかりで、この問題を発見しました。これが意図した変更なのか、それとも私の側のバグなのかわかりません。しかし、これが以前のバージョンの SDK で機能していたことは確かです。
誰でもこれで私を助けることができますか?ありがとう
注: これは両方のモードで動作しなくなりました: .forCurrentlyOutstandingWork と .reportIndefinitely
例
編集-2020年12月21日
明確にするために、返されるトークンには値が含まれており、.invalidate は呼び出されていません。
セッションにエラーはなく、新しいダウンロードによってコールバックがトリガーされます。最初のダウンロード後、すべてが期待どおりに機能します。これは、後で progressNotifcation を追加すると、コールバックが直前のダウンロードの進行状況ですぐにトリガーされることを意味します。ただし、最初のダウンロードがない場合、コールバックは呼び出されません。
スコープについては、このメソッドは実際には私が作成したカスタム パブリッシャーにあり、割り当てが解除されていません。
レルム 10.5.0
iOS 14.3
javascript - 逆の関係を持つオブジェクトをフィルタリングするときに最大呼び出しスタック サイズを超えました ( Realm 10.1.1 )
次のスキーマを指定します。
何人かの人と会社の何人かを追加した後、年齢でフィルタリングして、コードで30歳以上のものを取得しようとしましたrealm.objects("Person").filtered("age > 30");
このクエリの結果は次のエラーです。
最大呼び出しスタック サイズを超えました。
要件を満たす人物のリストがあるはずですが、代わりにこのエラーが発生します。リリース 10.0.0 では、このエラーは機能の修正であると思われtoJSON()
ます。ID でオブジェクトをフィルタリングしようとすると、すべて正常に動作しますが、いくつかのオブジェクトのリストを取得しようとすると、このエラーが発生します。
誰かがこれに対する解決策を持っていますか?
私は使用しています --> Realm: 10.1.1 React Native: 0.62.2 Node: 10.22.1
javascript - キャッチされていない約束の拒否: モジュール 'nanoid' のソースを評価できませんでした: node_modules/nanoid/index.cjs
nanoid を使用しようとしています ( https://www.npmjs.com/package/nanoid/v/2.1.2 )
MongoDB レルム ランタイム内からですが、以下がスローされます。
Realm ダッシュボードから確認できるすべてのエラーがこれに該当します。
何が欠けている可能性がありますか?