【问题标题】:How to update multiple fields in Firebase Web?如何更新 Firebase Web 中的多个字段?
【发布时间】:2019-06-08 06:51:06
【问题描述】:

我有以下代码,我想使用 JavaScript、Web SDK 更新我的 Firebase 数据库中的一些简单值。

但是,它不会运行/更新我的数据库。这里有什么问题?

    var dbRef = firebase.database().ref().child('feeds').child(selectedFeed).child('audio');
    var uid = dbRef.push().key;

    var data = {
      "downloadURL": uploadTask.snapshot.downloadURL,
      "fileName": file.name,
      "timeStamp": selectedDateUnix
    };

    var updates = {};
    updates["mostRecentKey"] = uid;
    updates[uid] = data;

    dbRef.update(updates).then(function(){
      //success
      alert("Successfully Uploaded. This is now available to be listened to by your users.");

    }).catch(function(error){
      //failure
      alert(error.message);

    });

【问题讨论】:

  • 是否会触发任何一个警报?
  • 不,他们没有。
  • 这段代码运行了吗?我用这段代码做了一个本地测试,它工作得很好。
  • 经过仔细检查,downloadURL 和 timeStamp 并导致它失败,因为它们是 var 引用作为它们的值。例如,如果我用字符串替换它们,它就可以工作。为什么会这样?我的格式不好吗?
  • 好的,原来我需要使用Number()String() 转换数据

标签: javascript firebase web firebase-realtime-database


【解决方案1】:

虽然它从未在 Firebase 文档中指定,但实际上我觉得它不是必需的;你必须投射你的数据。例如:

这不起作用。直接访问变量。

var myNum = 10;
var data = {};
data["myNum"] = myNum;

这确实有效,但不允许动态使用 var

var data = {};
data["myNum"] = 10;

最后,这是可行的,并且是我使用变量引用的解决方案。投射您的数据。

var myNum = 10;
var data = {};
data["myNum"] = Number(myNum);

【讨论】:

    猜你喜欢
    • 2023-01-17
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    相关资源
    最近更新 更多