簡體   English   中英

React-Native:Firebase查詢父值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM