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

将数据保存到Firebase中的子级

卢作人
2023-03-14

我有一个小应用程序,用户可以根据球员最近在各种运动中的表现,对他们进行升票或降票。

当upvote按钮当前被点击时,投票者的UID(通过Google登录)应该被推入被投票的相应玩家的数据库中。像这样:

下面是执行Firebase工作的代码。我相信我错了其中一句台词。

this.database = firebase.database().ref().child('players');

upvotePlayer(playerId) {
this.state.user ?
  this.database.child(playerId).transaction(function (player) {
    if (player) {
      console.log("UID: " + uid)
      var ref = firebase.database().ref('players/voters');
      ref.child(uid).set(1);
    }
    return player;
  })
  :
  console.log("Must be logged in to vote.")

  }

共有1个答案

叶浩荡
2023-03-14

您将投票存储在此路径players/p选民中,而它应该存储在此路径players/$playerid/p选民

签出这个

this.database = firebase.database().ref().child('players');

upvotePlayer(playerId) {
    this.state.user ?
        this.database.child(playerId).transaction(function (player) {
            if (player) {
                console.log("UID: " + uid)
                var ref = firebase.database().ref('players/' + playerId + '/voters');
                ref.child(uid).set(1);
            }
            return player;
        })
        :
        console.log("Must be logged in to vote.")
}

transaction方法具有transactionupdate函数作为参数,该函数应该返回新值,但您没有返回任何值,我认为更好的解决方案是不使用transaction

upvotePlayer(playerId) 
{
    if(this.state.user)
    {
        let ref = firebase.database().ref('players/' + playerId + '/voters');
        ref.child(uid).set(1);
    }
    else
    {
        console.log("Must be logged in to vote.")
    }
}
 类似资料:
  • 问题内容: 检索数据有效,但是我无法将检索到的数据保存到ArrayList中。在“ onDataChanged()”方法之后,ArrayList“配置文件”似乎具有2个值,但在return语句中它具有0个值。 问题答案: 您现在无法返回尚未加载的内容。换句话说,您不能简单地在方法之外返回列表,因为它总是由于该方法的异步行为而引起的。这意味着,当您尝试返回该方法之外的结果时,数据尚未完成从数据库的加

  • Im使用firebase,由于某些原因,我的代码没有推送数据,并且Im没有在firebase URL中看到数据。我的密码是这样的 我得到警报“保存”,但我无法在firebase URL中找到数据。 此外,为Firebase中的每个url提供的API键有什么用途。 更新:这种情况发生在IE10中。在其他浏览器中,它工作得很好

  • 下面是我的两个活动的代码。通过这样编码,数据在FireBase中就这样存储了。这是存储数据的快照: 但是我想像这样在firebase中存储数据,我想像这样存储在注册号字段下: 我想将来自多个活动的数据存储在同一个子元素下,就像我在第二张屏幕截图中显示的那样。 AccountyActivity.java SignupActivity.java

  • 我正在尝试使用一个用Java编写的桌面应用程序将数据保存到Firebase。但是,由于某些原因,它不起作用,我一直在这里提供的文档:https://firebase.google.com/docs/database/admin/save-data。找不到任何视频教程的问题,所有视频都是网络或移动相关的。基本上,我想创建一个名为Venda的对象,它有3个属性(ID、data、valor),然后将它保

  • 我编写了一个Firebase云函数,可以通过REST API访问该函数。代码如下所示。 我需要做的是,当用户通过“Web服务URL”从前端提交一些值时。 1)我需要将这些数据保存在Firebase实时数据库中。 2.)我参考了网上的几个教程,不明白在下面的代码中做了什么。

  • 我有一个关于在数据库中存储数据的问题。 我正在应用程序中的一些屏幕上工作:登录屏幕(用户可以访问你的帐户),注册屏幕(用户可以创建一个新帐户),用户提供信息的屏幕(比如“母亲的名字和身高”),以及配置文件屏幕(显示用户提供的信息)。 我在登录屏幕和注册屏幕中没有问题,但是我不知道如何在Firebase数据库中保存用户提供的信息,在用户提供信息的屏幕中。 你们谁能帮我一下吗?我知道我可以使用fire