2017-02-03 4 views
0

私はアプリケーション内で特定の権限を持つユーザーがいるアプリケーションを開発しています。私はsaasモデルで利用できるようにします。私のアプリケーションを使用する各会社のプロジェクトをfirebaseで作成する必要がありますまたはfirebaseデータベースでこれを制御する方法はありますか?ユーザーとのアプリケーション

+1

アプリがどのくらい正確に機能するのか分かりませんでしたか?異なるデータを使用する異なる企業ですか?または同じデータを使用する異なる企業ですか? –

+0

スタックオーバーフローは、アプリケーションのビルド方法に関する幅広いアドバイスを求めるのに適していません。代わりにfirebase-talk googleグループに投稿することを検討してください。あなたのアプリケーションを実装するために書いているコードに特定の質問があるときは、Stack Overflowに戻ってください。 –

答えて

0

ユーザーに異なる権限を設定するには、カスタムトークンクレームを使用する必要があります。あなたのルールで

、あなたはこのようなものを設定することができます

{ 
    "rules": { 
    "adminContent": { 
     ".read": "auth.token.premiumAccount === true", 
     ".write": "auth.token.premiumAccount === true", 
    } 
    } 
} 

あなたは、その後の管理を使用して、そのユーザーのためにそのカスタム要求とカスタムトークンを作成することができますがNode.jsのSDK:

admin.auth().createCustomToken(uid, {premiumAccount: true}); 

その後、サインインした後にクライアント側のアプリケーションにcustomTokenを送信できます。バックエンドのIDトークンを確認して、ユーザーがあなたの許可要件を満たしていることを確認してください。

var provider = new firebase.auth.GoogleAuthProvider(); 
firebase.auth().signInWithPopup(provider) 
    .then(function(result) { 
    // User is signed in. Get ID token. 
    return result.user.getToken(); 
    }) 
    .then(function(idToken) { 
    // Send ID token to backend. 
    $.post(
     '/setCustomAttributes', 
     { 
     idToken: idToken 
     }, 
     function(data, status) { 
     // Check if custom token is returned. 
     if (status == 'success' && data) { 
      var json = JSON.parse(data); 
      if (json && json.customToken) { 
      // User is eligible for upgrade. Set custom attributes on the user 
      // via custom token sign-in. 
      firebase.auth().signInWithCustomToken(json.customToken); 
      } 
     } 
     }); 
    }).catch(function(error) { 
     console.log(error); 
    }); 
関連する問題