1

を拒否されたが、私は参照してください。このlinkFirebaseユーザー:許可がfirebase認証を使用しています

"users": { 
     ".read": "auth != null && root.child('admins').child(auth.uid).val() == true", 
     ".write": "auth != null && (root.child('admins').child(auth.uid).val() == true)", 
     "$uid": { 
      ".read": "auth != null && (auth.uid == $uid || root.child('admins').child(auth.uid).val() == true)", 
      ".write": "auth != null && (auth.uid == $uid || root.child('admins').child(auth.uid).val() == true)" 
     } 
     }, 

これは私のfirebaseユーザー表ルールです。

私services.js

signupUser: function(newUser) { 
      var secondaryApp = firebase.initializeApp(FirebaseAppConfig, "Secondary"); 
      var usersRef = firebase.database().ref().child('users'); 
      return secondaryApp.auth() 
      .createUserWithEmailAndPassword(newUser.email, newUser.password) 
      .then(function(firebaseUser) { 
      secondaryApp.auth().signOut(); 

      var newUserWithoutPwd = _.extend({}, newUser); 
      delete newUserWithoutPwd.password; 
      return usersRef 
      .child(firebaseUser.uid) 
      .set(newUserWithoutPwd) 
      .then(function() { 
       return newUserWithoutPwd; 
      }); 
      }); 
     }, 

Authendicationは成功です。しかし、ユーザーテーブルにアクセス許可拒否エラーが表示されます。画面下の

ショーは私の推測では、あなたが新たに作成されたユーザーがデータベースにそのユーザーのプロフィールを書きたいということです

enter image description here

+0

? –

答えて

1
  1. は削除secondaryApp.auth().signOut();
  2. 更新するreturn firebase.database(secondaryApp).ref().child('users')ユーザーが書き込み権限を持っていることをどう思いますかに基づいて

    signupUser: function(newUser) { 
    var secondaryApp = firebase.initializeApp(FirebaseAppConfig, "Secondary"); 
    return secondaryApp.auth() 
        .createUserWithEmailAndPassword(newUserInsert.email, newUserInsert.password) 
        .then(function(firebaseUser) { 
        var newUserWithoutPwd = _.extend({}, newUserInsert); 
        delete newUserWithoutPwd.password; 
    
        return firebase.database(secondaryApp).ref().child('users') 
        .child(firebaseUser.uid) 
        .set(newUserWithoutPwd) 
        .then(function() { 
        return newUserWithoutPwd; 
        }); 
    }); 
    }, 
    
3

を撃ちました。

  1. は、あなたがとして現在のユーザプロファイルデータを書き込む:その場合は、することが重要である書き込みが完了するまで、firebase.database(secondaryApp).ref().child('users')
  2. ユーザーをサインアウトしていないが

コードでは:

signupUser: function(newUser) { 
     var secondaryApp = firebase.initializeApp(FirebaseAppConfig, "Secondary"); 
     var usersRef = secondaryApp.database().ref().child('users'); 
     return secondaryApp.auth() 
     .createUserWithEmailAndPassword(newUser.email, newUser.password) 
     .then(function(firebaseUser) { 
     var newUserWithoutPwd = _.extend({}, newUser); 
     delete newUserWithoutPwd.password; 
     return usersRef 
      .child(firebaseUser.uid) 
      .set(newUserWithoutPwd) 
      .then(function() { 
      secondaryApp.auth().signOut(); 
      return newUserWithoutPwd; 
      }); 
     }); 
    }, 
+0

ありがとうございます。それは良いです。 – TAM

関連する問題