javascript - 模仿 Firebase 客户端库的结构和模式

标签 javascript firebase static-libraries javascript-objects

我正在考虑制作自己的 JavaScript 客户端库,我喜欢 Firebase 格式化请求的方式。我试图了解发生了什么。从查看网络指南here我找到了以下代码:

var ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog");

var usersRef = ref.child("users");

usersRef.set({

    alanisawesome: {
      date_of_birth: "June 23, 1912",
      full_name: "Alan Turing"
    },

    gracehop: {
      date_of_birth: "December 9, 1906",
      full_name: "Grace Hopper"
    }

});

我可以看到 ref 等于一个名为 Firebase 的函数,而 usersRef 等于 ref.child.

我正在想象这样的事情:

 Firebase = function(url) {
    this.child = function(path) {

  console.log(url);
  console.log(path);

};
};

在这里我可以看到 usersRef.set 正在被调用,但我无法弄清楚它会如何或去哪里? set 是函数还是对象?我注意到 firebase 有 set()update()push()transaction(),让我认为这些是函数。

"TypeError: Cannot read property 'set' of undefined

也许我完全走错了路,我只是不熟悉这种模式。

最佳答案

如果您检查 Firebase API,您会看到 child() 返回一个新的 Firebase 对子位置的引用。所以像这样:

var Firebase = function(url) {

   console.log(url);

   this.child = function(path) {
      return new Firebase(url+'/'+path);
   };

   this.set = function(object) {
      console.log(object);
   };

};

我已经更新了你的 jsbin:https://jsbin.com/nucume/2/edit?js,console

关于javascript - 模仿 Firebase 客户端库的结构和模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33329393/

相关文章:

javascript - 如何最好地确定元素/节点在 DOM 中的距离?

swift - UserInfo={NSLocalizedDescription=该电子邮件地址已被其他帐户使用。, error_name=ERROR_EMAIL_ALREADY_IN_USE}

reactjs - {React Native} Firebase - 在导航前更新用户值仅在软刷新后有效

java - Android NDK 使用静态库 -> 函数尚未声明

ios - 如何避免 A 依赖 B 的两个静态库中的源代码重复?

javascript - Backbone : Determing if a View has Already Been Loaded

javascript - IE 的非冒泡提交事件的解决方法

javascript - 如何通过单击 anchor 元素来发布表单

javascript - 如何在 Firestore 中创建具有可靠时间戳的文档?

c++ - 添加库时出现 Qt 错误 - 没有创建目标的规则