1

vuejsアプリケーションをビルドしていますが、firebase authをアプリケーションに追加しようとしています。私は、ニュースシステムのために雲火火房を使用しました。Firebaseクラウドfirestore + auth:ログインしているユーザのみ書き込み

今、私は何かが間違っていた場合には、ユーザーがログインするか、彼にフィードバックを与えることを

firebase.auth().signInWithEmailAndPassword("[email protected]", "mypassword").catch(function (error) { 
    console.log(error.code); 
    console.log(error.message); 

    if (errorCode === 'auth/wrong-password') { 
    alert('Wrong password.'); 
    } else { 
    alert(errorMessage); 
    } 
}); 

呼び出し「のニュースを追加」ページで。

後、私は私が取材に

allow read, write: if request.auth != null; 

を設定firestoreルールでこの

irestore.collection("news").doc().set({ 
    date: today, 
    title: "Hello", 
    text: "A think I am a news!" 
}); 

のようなクラウドfirestoreにデータを書いています - それは唯一のログインユーザーへの書き込みアクセスを許可する必要があります、 右?

今の事:は、私は間違ったパスワードでログインした場合、firebaseは(?私たちがしている私たちにはログインしていません。)パスワードが間違っていたことを、バック与え が、データがとにかくfirestoreに書き込まれます。私は何を間違えたのですか?ユーザーが任意のメソッドを介してで署名されている場合

enter image description here

答えて

1

あなたのルールrequest.auth != nullをチェックします。次の2つの方法で符号のためのクライアント側で確認することができます。

同期:

// Synchronously check for current user 
var user = firebase.auth().currentUser; 

if (user) { 
    // User is signed in. 
} else { 
    // No user is signed in. 
} 

非同期:

// Listen for current user status 
firebase.auth().onAuthStateChanged(function(user) { 
    if (user) { 
    // User is signed in. 
    } else { 
    // No user is signed in. 
    } 
}); 

あなたがuserを取得する場合は、あなたがnullではないとrequest.authを期待することができます。

関連する問題