【问题标题】:How to save Javascript object to Firebase if object has functions/methods attached?如果对象附加了函数/方法,如何将 Javascript 对象保存到 Firebase?
【发布时间】:2017-01-30 01:40:34
【问题描述】:

我正在尝试将 javascript 对象的数据属性同步到 Firebase。但是,当我将方法附加到我的对象时,Firebase 会引发错误:
错误:Firebase.set 失败:第一个参数包含属性中的函数

我正在寻找一种简洁的方式来同步我的对象,而无需剥离所有方法,或者在对象中创建data 属性。

我的 Javascript 构造函数

var MyClass = function() { 
  this.foo = "bar";  // an example attribute. No problem for Firebase
}

// add a method. Firebase will throw an error because of this method.
MyClass.prototype.myMethod = function () {};

创建一个新对象

var myInstance = new MyClass();

Firebase 抛出错误

firebase.database().ref().set(myInstance);

有什么想法可以用一种干净的方式来完成这样的工作吗?

【问题讨论】:

  • 将它们保存为不带函数的 JSON,然后使用带有 reviver 函数的JSON.parse

标签: javascript firebase firebase-realtime-database


【解决方案1】:

这应该可以解决问题:

var json = JSON.parse(JSON.serialize(myInstance));
firebase.database().ref().set(json);

但总的来说,我建议您将代码与数据分开。 Firebase 数据库中的对象不应包含函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 2019-12-05
    相关资源
    最近更新 更多