当前位置: 首页 > 知识库问答 >
问题:

快照后操作Firebase元素

澹台华采
2023-03-14

我有一个函数,当单击搜索表单上的按钮时,它会被调用。我们得到字符串并检查它以确保它只是字母。然后我们检查球员的名字是否已经在数据库中,如果不是,我们添加他。如果他在数据库中,我们转到语句的else部分。这工作得很好--但是在我的其他区域,当我们确定数据库中有一个名字完全相同的玩家时,我想要为该玩家操作数据库中的一个特征。具体地说,在玩家投票计数中加上1。

writePlayer(newPlayerContent){
if (/^[a-zA-Z\s]*$/.test(this.state.newPlayerContent)) {
    this.checkIfUserExists(this.state.newPlayerContent);

    if(this.state.duplicate !== true){
    this.props.addPlayer(this.state.newPlayerContent);
    this.setState({
        newPlayerContent: '',
        })
    }
    else{
        var playersRef = firebase.database().ref();
        playersRef.child('players').orderByChild("playerContent").equalTo(this.state.newPlayerContent).once("value",snapshot => {
        const userData = snapshot.val();
        console.log(userData)
        })
    }
}
else {
    console.log("Non-letter character found in: " + this.state.newPlayerContent)
    }

}

我的火力点是这样布置的:

players
    playerContent: "Test"
    rank: 0
    votes: 0

共有1个答案

养枫涟
2023-03-14

试试这个

else{
    var playersRef = firebase.database().ref();
    playersRef.child('players').orderByChild("playerContent").equalTo(this.state.newPlayerContent).once("value",snapshot => {
    snapshot.forEach(child => {
        const data = child.val();       
        const key = child.key
        //set the  vote count
        playersRef.child('players/'+key).update({
            votes: data.votes + 1;
         });
      });
    })
}

您需要循环遍历数据以得到实际结果,然后使用键指向想要的播放器并设置其值。希望这有帮助。

 类似资料:
  • 命令 功能 hdfs dfs -ls /foo/.snapshot 列出一个可快照目录下的所有快照 hdfs dfs -ls /foo/.snapshot/s0 列出快照s0的所有文件 hdfs dfs -cp -ptopax /foo/.snapshot/s0/bar /tmp 从快照s0拷贝一个文件,注意一下这个例子使用了保留选项来保留timestamps,ownership,permissi

  • 问题内容: 我需要有关从此DataSnapshot结果中获取“消息”对象的帮助 我可以通过获取键值,并且也可以作为对象,这是FireBase自动生成的对象名称。而不是听对象本身。如何使用DataSnapshot成员方法浏览低谷,“发送者”或“消息”并获取其值? 问题答案: 我似乎在为具有多个子项的对象添加值侦听器。我猜这是一个查询,但是如果您在问题中包含代码,那将非常有帮助。但是,在您添加它之前,

  • 我正在尝试优化我的应用程序在Firesbase上的读取次数,并回顾我使用快照监控实时更改的方式。假设我有一个快照,返回10个最新文档,如下所示: 医生说 每次查询结果更改时(即添加、删除或修改文档时),快照处理程序都会收到一个新的查询快照。 这是否意味着每次查询更改时,我都将被计费10次读取?在这个例子中,如果添加了一个新城市(所以使用最新的“日期添加”,所以在查询中排在第一位),它将是1(只是新

  • 问题内容: 我有一个Firebase资源,其中包含几个对象,我想使用Swift对其进行迭代。我期望的工作如下(根据Firebase文档) https://www.firebase.com/docs/ios- api/Classes/FDataSnapshot.html#//api/name/children 因此,看来Swift遍历Firebase返回的NSEnumerator对象存在问题。 非常

  • Overview Rados supports two related snapshotting mechanisms: pool snaps: snapshots are implicitely applied to all objects in a pool self managed snaps: the user must provide the current SnapContext on

  • QueryList不仅可以读取DOM元素的属性值,还可以操作DOM元素。 在采集单元素章节,我们接触到了find()方法,它用于选择DOM元素,返回值为QL\Dom\Elements对象,这是QueryList内置的一个DOM元素集合对象,它拥有几乎所有与jQuery操作DOM完全相同的API。 熟悉jQuery的同学应该知道jQuery操作DOM的API方法非常的多,QueryList几乎全部支