javascript - 如何检查名称是否已存在于 Firebase 实时数据库(Firebase 和 JS)中

标签 javascript reactjs firebase firebase-realtime-database

我正在尝试检查 Firebase 实时数据库中是否已存在某个名称,其结构如下: enter image description here

这是我的代码:

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');
            }
        })
    }

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

谢谢你。 🙂

最佳答案

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

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

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

关于javascript - 如何检查名称是否已存在于 Firebase 实时数据库(Firebase 和 JS)中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69402526/

相关文章:

Javascript 引用 php 中的 id 元素

javascript - 在 vuejs 中使用 vuelidate 验证密码?

javascript - JavaScript 中的楼梯模式

java - 使用用户名引用将数据保存到 Firebase

firebase - 更改现有云 Firestore 集合中的数据模型?

android - 在 Firebase 中如何通过单个查询返回多个项目?

javascript - AngularJS 根据 GET 请求将新项目推送到数组

reactjs - 类型上不存在属性 'children'

javascript - React js,如何在输入更改时更新状态对象值?

javascript - React Infinite Scroll 超出最大更新深度