首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >采用Firebase架构的FeathersJS

采用Firebase架构的FeathersJS
EN

Stack Overflow用户
提问于 2016-09-06 08:43:33
回答 2查看 1.5K关注 0票数 7

我有一个现有的Firebase应用程序(它是为快速原型而构建的,现在它已经变得很大了,我不打算移动,因为现有的依赖关系,也因为易用性和身份验证捆绑在一起),我正在尝试使用FeatherJS构建一个Rest API。

如果您使用的是标准数据库(MongoDB等),那么使用FeathersJS似乎真的很容易。我如何将Firebase与Feathers集成在一起,保持最佳实践(服务架构,AOP)?我可以覆盖羽毛中的服务并将其映射到我的Firebase Rest端点吗?

我在羽毛中创建了一个自定义服务,并尝试这样做:

代码语言:javascript
复制
  get(id, params) {
    return Promise.resolve(FirebaseRef.child(id).once('value'));
  }

我得到的是:

代码语言:javascript
复制
Converting circular structure to JSON error

我做的是正确的吗?

EN

回答 2

Stack Overflow用户

发布于 2016-09-06 13:12:56

这是可行的:

代码语言:javascript
复制
return Promise.resolve(FirebaseRef.child('userId1').once('value').then(function (snap) {
          return snap.val();
        }));

我仍然不确定这是否是将Firebase与FeathersJs集成的最佳方式

票数 5
EN

Stack Overflow用户

发布于 2018-10-28 00:25:09

实时Firebase和whereas之间的主要架构差异在于,Firebase使用键值观察,而Feathers使用在遵循REST architecture时自动获得的real-time events。第一步是将通用的Firebase操作封装在它自己的custom service中,它可能看起来像这样(未经过测试):

代码语言:javascript
复制
class FirebaseService {
  constructor(name) {
    this.name = name;
  }

  ref(id) {
    return firebase.database().ref(`${this.name}/${id}`);
  }

  async get(id) {
    const ref = await this.ref(id).once('value');

    return ref.value;
  }

  async create(data) {
    const id = firebase.database().ref().child(`/${this.name}`).push().key;

    return this.update(id, data);
  }

  async update(id, data) {
    this.ref(id).set(data);

    return this.get(id);
  }

  async remove(id) {
    const deletedEntry = await this.get(id);

    this.ref(id).remove();

    return deletedEntry;
  }
}

这已经让你得到了一个羽毛Firebase集成,只要你通过羽毛应用程序接口使用它,它就会自动发送real-time events。如果Firebase在服务外部得到更新,并且您希望通知客户端,则可以使用值侦听器,并在服务器上的服务上调用update和/或patch

代码语言:javascript
复制
const id = <some user id>;
firebase.database().ref(`/users/${id}`).on('value', snapshot => {
  app.service('users').update(id, snapshot.value);
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39339170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档