将变量写入路径时出现Firebase错误

时间:2017-12-14 03:11:01

标签: javascript firebase firebase-realtime-database

我抓取一个URL并解析它以创建一个名为list的变量。我在控制台内部和外部的这个变量打印功能。我也试过在函数内再次抓取URL。触发此功能会给我一个错误:

  

Reference.update失败:第一个参数必须是包含要替换的子项的对象。

如何将正确的变量传递给函数,以便我可以写入Firebase?

JS是:

var getQueryString = function ( field, url ) {
    var href = url ? url : window.location.href;
    var reg = new RegExp( '[?&]' + field + '=([^&#]*)', 'i' );
    var string = reg.exec(href);
    return string ? string[1] : null;
};

var list = getQueryString('list', window.location.href);
console.log(list);
document.getElementById('list').innerText = list;

function accept(){
  var list = getQueryString('list', window.location.href);
  console.log("accept", "list", list);
  var user = firebase.auth().currentUser;
  var uid = user.uid;
  console.log("accept", "uid", uid);
  firebase.database().ref('userprofile/' + uid +  '/list').update(list);
  return firebase.database().ref('userlists/' + list +  '/members/' + uid).update('true');
}

1 个答案:

答案 0 :(得分:0)

您现在正在做的事情相当于set()操作:

return firebase.database().ref('userlists/' + list +  '/members/' + uid).set('true');

或者,您可以执行更高级别的更新:

var updates = {};
updates[uid] = 'true';
return firebase.database().ref('userlists/' + list +  '/members/' + ).update(updates);