【问题标题】:How to check if name already exists in Firebase Realtime Database (Firebase & JS)如何检查名称是否已存在于 Firebase 实时数据库(Firebase 和 JS)中
【发布时间】:2021-11-22 21:41:30
【问题描述】:

我正在尝试检查结构如下的 Firebase 实时数据库中是否已存在名称:

这是我的代码:

const players = Firebase.database().ref("players");

function nameCheck() {
        console.log(name);

        players
        .orderByChild('settlement_name')
        .equalTo(name)
        .once('value')
        .then(snapshot => {
            if(snapshot.exists()){
                let playerData = snapshot.val();
                console.log(playerData)
                setError('Settlement name already exists')
                return playerData
            } else {
                console.log('Settlement name not found');
            }
        })
    }

谁能告诉我为什么这个函数不能正确识别名字的存在?我在函数开头记录了名称,它与数据库中的名称匹配,但它只会返回未找到该名称。

非常感谢。 ????

【问题讨论】:

  • 值区分大小写。您确定要比较完全相同的名称吗?
  • 感谢您的回复,@Dharmaraj - 我一直在比较确切的名称和区分大小写,但没有发现任何结果。
  • 再次感谢@Dharmaraj - 它返回“null”。

标签: javascript reactjs firebase firebase-realtime-database


【解决方案1】:

您需要使用嵌套子路径,如doc 中所述。

    players
      .orderByChild('settlement/settlement_name')
      ...

PS:如果您检查一个名称是否存在以便使用该名称来创建一个新的数据库节点(如果它不存在),您应该使用Transaction

【讨论】:

  • 大功告成!冠军。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2019-01-17
  • 1970-01-01
  • 1970-01-01
  • 2022-01-06
  • 2019-04-18
  • 1970-01-01
  • 2021-01-14
  • 2022-12-31
相关资源
最近更新 更多