サーバー側のカスタム操作:Firebase:サーバー側のロジックとリアルタイムデータベースの制限クラウドコードを解析するために同等の
解析がcloud codeを書くための可能性があります。私の理解から、Firebaseはコンソール上でこれを行うためのツールを提供していません。
これを行う唯一の方法は、Firebase APIを使用してWebサービスを実装し、ノードの変更を監視し、自分のサーバーにクラウドコードを実装することです。
- A - これは間違いありませんか?
サーバー側のルール:Firebaseの
legacy documentation /書き込みだけでなく、検証を読み取ることができるユーザーを決めるに限定されているように見えるのルールを説明しています。
{
"rules": {
"foo": {
// /foo/ is readable by the world
".read": true,
// /foo/ is writable by the world
".write": true,
// data written to /foo/ must be a string less than 100 characters
".validate": "newData.isString() && newData.val().length < 100"
}
} }
オンパッセージでは、ルールの複雑さが大きくなります。プログラマは、カスタム操作を実行するための関数を作成することができます。
私はFirebaseにこの複雑さを持っていない理由は、おそらく、ノードベースのデータベースは、テーブルベースのものよりも複雑であり、それということであることを想像:Firebaseをそのままに設計された理由を理解
開発者がweb-apiとカスタムサーバーアプリケーションを使用してこれを完全に制御できる場合は、より良いでしょう。
- B - これは正しいですか?
リアルタイムデータベースの制限: Firebaseのようなリアルタイムのデータベースを使用して主な制限は、私には思える
そのデータは2ウェイの冗長性のイベントが含まれている場合は、いくつかのリアルタイムデータをフェッチしたら1つのノードでトリガされたノードは、冗長な情報を含むノードに伝播されません。
など。ユーザーノードにキーid(ユーザーノードの同じレベルにある別のノードのID)があり、キーリストが変更されているかどうかを検出するために、ユーザーがテーブルビューにあるキーの一覧を表示すると、 (ユーザーノードの変更だけでなく)キーノードの変更を聴くことができます。
- C:これは間違いありませんか?
A)はい、多分。はい、サーバーサイドロジック(コードワイズ)はありません。たぶん、それはあなたがしようとしていることに依存します。方向を示すためにはさらに多くの情報が必要です。 B)Firebaseルールは非常に柔軟です。ルールは、誰がデータにアクセスできるか、読み取り/書き込みアクセス、どのような種類のデータ、データの種類、データの場所などを制限する可能性があります。あなたの例では、鍵ノードをユーザノードとは別のノードとして用意し、ユーザに/ keys/nodeを観察させるべきでしょう。 – Jay
こんにちはジェイ、返信いただきありがとうございます。私はいくつかの詳細を追加しました。 Cについては、適切なUXを作成するためにプログラマが変更を遵守していることに頼っていますが、これは正しいですか?たとえば、プログラマとしては、違いを捕捉するために値とすべての依存関係を観察する必要があります(これはデータの冗長性によるものです)。 – mm24
A)Firebaseサーバにコードがありません。ユースケースを提供できますか? C)データは必ずしも冗長である必要はありませんが、それは可能です。関心のある特定のデータの変更を観察するだけで済みます。各ユーザーの/ usersノードと/ favorite_foodノードがあるとします。あなたのUIがユーザーのリストを表示していて、そのうちの1人がお気に入りの食べ物を変える場合、あなたは本当に気にしません - ユーザーのリストに興味があります。つまり、/ favorite_foodノードではなく/ usersノードを観察します。あなたはそれを扱いやすくするためのユースケースを持っていますか? – Jay