2

5〜10台の電話機で動作するAndroid/FIREBASEアプリで作業しています。それは私たちのトラック運転手のためだけで、私的使用のためです。これらのドライバでは、前もって電子メールで電話することはありませんでした。そのため、技術者はログイン資格情報を覚えていません。彼らはほとんど英語を話しません。firebaseのルール、アンドロイド、アプリに認証情報を書き込み、ログインしないようにする

だから、実際のログインはないので、ある種の認証方法をANDROIDアプリにハードコードしたいのですが、私はまだFirebase DBに書き込むことができます。私はこれを世界に開放したままにしたくないので、ルールを書きたいと思っています。私はまた、読んで書くWEBアプリをしたい。それはまれなケースですが、私はこのような他のケースを考えることができます。私は

アイブ氏はthis answer ...(しかし、その3歳)

私は何かなどをやって考えていた。..

Function AllowTruckDriversWrite(TDID){ 
    if one of these {td01, td02, td03} 
return true 
else return false 
} 

{ 
    "rules": { 
    ".read": true, 
    ".write": AllowTruckDriversWrite(ValFromAndroidApp) 
    } 
} 

を見て読んで私がコントロールする他のプロジェクトを持っていますが、私はValFromAndroidAppを電話からルールエンジンに渡す方法がわからない

私はまた、VALIDATE 「.validate」を使用してのことを考えていました:AllowTruckDriversWrite(ValFromAndroidApp)

私はまだそれらの詳細ドキュメントを探して...これらのルールを試しています。誰かがいくつかの提案、アイデア、これのような何かのためにルールを設定する方法についての考えを持っていますか?おそらく、誰かがルールコードをクリーンアップする可能性がありますか?多くのありがとう

答えて

2

実際にユーザーを作成して電話をかけ、アプリにログインしてもアプリでサインアウトオプションを提供しない方が良いと思います。このように、文字通りアプリをアンインストールしない限り、アプリはサインアウトせず、すべてのドライバを追跡できます。また、電話に何か問題が発生しても、データを失うことなく新しい電話機に再度ログインするだけで済みます。 アプリはプライベートなので、すべてのユーザーのユーザーID(UID)は、あなた次第です、あなたはこれらのルールを持つことができます。

"users":{ 
    "$uid":{ 
    ".read": true, 
    ".write": "auth.uid == $uid" 

    } 
} 

または多分:

"users":{ 
    "$uid":{ 
    ".read": true, 
    ".write": "auth.uid != null" 

    } 
} 

私はこれが役立つかもしれないと思いました。私の答えがそれほどばかげていないことを願っています。 ;-)

+0

決して馬鹿馬鹿しい...オプションAは面白いです。オプションB ...少し少ない...しかし、ばかげたことではありません。私は電話から渡すことができるハードコーディングされたトークンが必要だと思う。しかし、私はこのソリューションがウェブとどのように機能するのか分かりません。おそらく、ユーザーをシステムに受け入れる方法があれば。 AndroidまたはWebユーザーはシステムへのアクセスを要求するため、リモートからのアクセスを許可する必要があります。私はこれらのルールを想定して、私のAndroidアプリからDBに書き込むことができます – IrishGringo

+0

は... は私が '{ 「ルール」でログインしていたことを確認することができます:{ \t \t「.read」:真、 \t \t ".write":true } しかし、ルールを変更すると...すべての書き込みが失敗します。私は間違って何をしていますか? 私は子供たちに書いています。 '{ "ルール":{ \t \t ".read ":真、 \t \t" .WRITE":「auth.uid!= null " } }' – IrishGringo

関連する問題