[英]React-Native: Firebase Query for parent values
我是本機和JavaScript的新手。 我正在嘗試在數據庫中搜索輸入的數字,這是用戶節點的子代。 如果查詢找到了輸入的號碼,我想知道該號碼是否已驗證。 調試屬於用戶的所有值,但無法訪問。 如何從我的角度獲取userID值?
getUserByPhoneNumber = phoneNumber => {
var ref = firebase.database().ref("/Users");
var query = ref.orderByChild("phone").equalTo("phoneNumber");
query.once("value", function(snapshot) {
// User found
if (snapshot.val()) {
// undefined
console.log(snapshot.val().phoneVerified);
// output = "Users"
console.log(snapshot.key)
}
});
};
Firebase數據結構是這樣的:
/Users
/uid
/phone
/phoneVerified
我假設你的FB結構是
/Users
/phone
/phoneNumber
/phoneVerfied
功能:
getUserByPhoneNumber = phoneNumber => {
var ref = firebase.database().ref("/Users");
var query = ref.orderByChild("phone/phoneNumber").equalTo(phoneNumber);
query.once("value", function(snapshot) {
const record = metadata.val();
if (record) {
const uids = Object.keys(record);
// Modify this if you can have multiple records per phone number
if (uids && uids.length > 0 && record[uids[0]].phone.phoneVerified) {
// Do something with uid
}
}
});
};
我通過在snapshot.val()中設置來解決了這個問題
getUserByPhoneNumber = phoneNumber => {
var ref = firebase.database().ref("/Users");
var query = ref.orderByChild("phone").equalTo(phoneNumber);
query.once("value", function(snapshot) {
// User found
if (snapshot.val()) {
// Whole user Node is returned - so foreach
snapshot.forEach(function(childSnapshot) {
var userID = childSnapshot.key;
var userData = childSnapshot.val();
if (userData.phoneVerified) {
// User is known and Verified -> enter password
} else {
// User is known but not Verified -> send Verification
}
});
} else {
// User NOT found -> register
}
});
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.