首页 > 解决方案 > 使用子节点数据检索另一个用户 UID

问题描述

我正在为我的离子网络应用程序创建一个推荐代码功能。目前,当提交推荐代码并且它存在于 firebase 实时数据库中时,将向当前用户帐户添加 50 点。但是,我还尝试向正在使用其推荐代码的其他用户添加积分。

到目前为止,我正在尝试调用其他用户的 UID,然后我将调用该 UID 并创建更新函数。但是我无法获得 UID,有没有办法可以做到这一点?我已经添加了我的 firebase 结构和我尝试过的代码。这是我的数据库结构

var ref = firebase.database().ref('users/').startAt(this.checking.referralCode).endAt(this.checking.referralCode);
ref.once("child_added", function(snapp) {
    console.log(snapp.key); 
});

更新:我试过这个代码,但是它带出了所有的 UID,有没有办法可以使用推荐代码中的数据指定我想要的 UID?

 var ref = firebase.database().ref("users");

ref.orderByKey().endAt("referralCode").on("child_added", function(snapp) {
  var key = snapp.key;
  console.log(key)

谢谢 !

标签: typescriptfirebaseionic-frameworkfirebase-realtime-databaseionic5

解决方案


听起来您正在尝试referralCode对子值进行排序/过滤,您可以这样做:

var query = ref.orderByChild("referralCode").equalTo("56483579").limitToFirst(1);
query.once("child_added").then(function(snapshot) {
  console.log(snapshot.key); // "jHl9Srh..."
})

如果可能有多个具有相同值的子节点,你会这样做:

var query = ref.orderByChild("referralCode").equalTo("56483579");
query.once("value").then(function(results) {
  results.forEach(function(snapshot) {
    console.log(snapshot.key); // "jHl9Srh..."
  })
})

推荐阅读