Atlas でホストされ、 Stitch経由で接続された MongoDB データベースを使用して Web ツールを構築しました。私の理解では、Stitch は減価償却され、MongoDB Realmになりました。そこで、Stitch の代わりに新しい Realm アプリを使用して、サイトを更新しようとしました。動作はしますが、匿名ログインは何らかの理由で非常に遅くなりました。MongoDB ドキュメントで提案されているコードを使用して、いくつかの簡単なテストを行いました。
let t0 = performance.now()
app.logIn(Realm.Credentials.anonymous()).then(() => {
let t1 = performance.now()
db.collection('test').find({
category: "test"
}, {limit: 10})
console.log("Login took " + (t1 - t0) + " milliseconds.")
})
ログインするのに信じられないほど時間がかかります1200 ms
。
let t0 = performance.now()
app.auth.loginWithCredential(new stitch.AnonymousCredential()).then(() => {
let t1 = performance.now()
db.collection('test').find({
category: 'test'
}, {limit: 10}).asArray()
console.log("Login took " + (t1 - t0) + " milliseconds.")
})
古い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 回だけ発生します。