firebaseのドキュメントには、書き込み操作のイベント保証が含まれています。「単一のクライアントからの書き込みは、常にサーバーに書き込まれ、他のユーザーに順番にブロードキャストされます。Firebaseが非書き込み操作を保証するイベントの順序は?
しかし、非書き込み操作、つまり読み取りイベントまたは認証イベントに関する情報は見つかりませんでした。 私は以下のユースケースを考える:私のFirebase DBへ
アクセスが認証される必要があり、私はどうなるアプリケーションの初期化のよう:
var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
ref.authWithPassword({
"email": "[email protected]",
"password": "correcthorsebatterystaple"
}
を次に最初にHTMLがしなければならない場合レンダリングされると、必要なデータがFirebaseから取得されます。
ref.once("value", function(data) {
// do some stuff once
});
私のアプリケーションでは、データの検索前にns。
読み取りが行われる前に認証が行われていることをFirebaseは保証しますか?または、初期化がまだ完了していないため、読み取りがパーミッションエラーで失敗することはありますか?
はい、私はリスナーについて知っていますが、私はこのリスナーのものを自分のアプリケーションのアーキテクチャーに持っていく方法はよく分かりません。私はAngularを使用していますが、ユーザーは別のHTMLページに直接アクセスできます。最初にページにアクセスすると、Angular framworkが起動します。これが認証を行う場所です。角度をつけて処理を続行し、最後にユーザーが見たいビューをレンダリングします。コントローラ内にデータを取得します。したがって、アプリケーションの設計時点から、これらの2つのアクションは互いに非常に遠く離れています。これはgooadアーキテクチャのやり方でどうやって処理できますか? – magicwerk
上記の私のコメントを明確にするために、認証はテクニカルユーザを使用して行われるので、ユーザの介入なしに行うことができます。 – magicwerk
さらに進んでください:少なくとも、読み書き操作を混ぜると保証があります。したがって、最初にノード上でset()を呼び出してからonce()を使用してそれを読み込んだ場合、前に行った変更を確認する必要があります。これは保証されていますか?したがって、書き込み/読み出し操作の順序が保証されている場合、読み取り/読み取り操作の順序が保証されないのはなぜですか? – magicwerk