0

ユーザアカウントが作成されたときにFirebaseリアルタイムデータベースにユーザ情報を保存しようとしていますが、後でそのユーザが書き込み可能にならないようにしてください。それをやって。アカウントの作成時にわかっていることから、特定のデータ(Facebookのログイン、Googleログイン、メール/パスワードのログイン)にサインインする以外のすべてのデータは、ユーザーが書き込み権限がある場所にのみ書き込まれるという点で "ユーザーによって"保存されます。ユーザーが編集できないアカウント作成時にユーザーデータを追加する方法はありますか?

私が探しているのは、後でユーザーが変更できないアカウント作成に関する追加データを書き込むものですが、そのデータを最初に書き込む唯一の方法は、それへの書き込みアクセス。後でユーザーが書き込むことのできないアカウント作成時に一度データを書き込むにはどうすればよいですか?

例:

は私がアカウントを使用して電話番号を保存しようとしている、と私のセキュリティルールは次のようになり言う:

"rules":{ 
    ".read":false, 
    ".write":false, 
    "users":{ 
    "$user_id":{ 
     ".read": true, 
     "writeable_data":{ //written to on account creation, can be changed later by user 
     ".write": "auth.uid === $user_id", 
     "name": {".validate":true} 
     }, 
     "unchanging_data":{ //written to on account creation, shouldn't be later changed 
     "phone_number": {".validate":"newData.isNumber() && newData.val().length() == 10"} 
     } 
    } 
    } 
} 

PHONE_NUMBERフィールドがあるように私はそれを作ることができますどのようにアカウントが作成されたときに書き込まれます(記入されたウェブフォームから記入されたものかそれに類似しているものとします)が、ユーザーが再び編集することはできません。 Firebaseのデータベースセキュリティルールでこれを行う方法はありますか、または管理者アクセス権を持ち、データを確認して書き込みを行う別のサーバーを呼び出す必要がありますか?

答えて

0

既存のデータがないことを確認すると、更新(および削除)が防止されます。

+0

パーフェクト!まさに私が探していたもの。奇妙なことに私はそれを見つけるのに苦労しました。ありがとう! – aknuck

関連する問題