2016-06-16 10 views

答えて

4

これは、クライアント - サーバーアーキテクチャでは非常に一般的です。

  • サーバー無効な/壊れたデータのすべてがデータベースに書き込まれませんされることを保証するために、データを検証しなければなりません。

  • クライアントは、ユーザーに最高のエクスペリエンスを提供するためにデータを検証する必要があります。

例を考えてみましょう:ユーザーが旅行の開始日と終了日を選択する旅行サイトがあるとします。一般的な検証は、終了日を開始日より前にすることはできません。 Firebaseデータベースのセキュリティルールでは、次のようになります。

{ 
    "journeys": { 
    ".validate": "newData.child('startAt').val() > now && 
        newData.child('endAt').val() > newData.child('startAt').val()" 
    } 
} 

ここで余分なチェックをしましたが、今まで旅行を予約することもできません。これははるかに単純化されていますが、サーバーサイドの側面がうまく説明できます。

クライアント側では、通常、カレンダーが表示されます。ユーザーがそのカレンダーを開くと、今日より前に日付を選択できないようにする必要があります。終了日を開始日の後にすることもできます。この最後のビットが実装されていない旅行サイトを使用したことがある場合は、それをどのように迷惑にするか知っています。迷惑なユーザーは他のサイトに移動します。

関連する問題