現在、私は自分のプロジェクトにhttps://github.com/invertase/react-native-firebaseを使用しています。私はユーザー用のカスタムデータベースを持っていて、ユーザーが存在するかどうかを電子メールで確認したい。ここでFirebaseデータベースにアイテムが存在することを確認する方法は? - react-native-firebase
がデータベースのスクリーンショットです:
現在、私は自分のプロジェクトにhttps://github.com/invertase/react-native-firebaseを使用しています。私はユーザー用のカスタムデータベースを持っていて、ユーザーが存在するかどうかを電子メールで確認したい。ここでFirebaseデータベースにアイテムが存在することを確認する方法は? - react-native-firebase
がデータベースのスクリーンショットです:
ここでは、一般的なfirebase方法ですが、あなたはあなたのデータ構造に合わせて方法を再設定する必要があるかもしれません。詳しく知りたい場合はofficial docsを参照してください。
firebase.database()
.ref(`/users`)
.orderByChild("email")
.equalTo(email)
.once("value")
.then(snapshot => {
if (snapshot.val()) {
// data exist, do something else
}
})
hasChild
メソッドで登録ステータスを照会することもできます。ルートパスを参照して.once
でクエリし、返された結果を確認してください。
export function checkUserExist(email) {
return(dispatch) => {
firebase.database().ref(`/ExistingUser/`)
.once('value', snapshot => {
if(snapshot.hasChild(email)) {
dispatch({
type: FIREBASE_USER_EXISTED
});
} else {
dispatch({
type: FIREBASE_USER_NOT_EXISTED,
});
}
});
}
}
もう1つの好ましい方法は、Firebaseが提供するfetchProvidersForEmail
メソッドを使用することです。それは電子メールを受け取り、すでに登録されている場合はその電子メールにリンクされているプロバイダのリストで解決する約束を返します。refer here。
データベースにユーザー資格情報を保存する理由はありますか?私の毎日の練習では、セキュリティ目的のためにFirebaseが提供するcreateUserWithEmailAndPassword
をrefer hereと使います。権限のないアクセスを防ぐため、ルールが適切に定義されていることを確認してください。