gpt4 book ai didi

Firebase 和 GraphQL

转载 作者:行者123 更新时间:2023-12-03 05:24:17 25 4
gpt4 key购买 nike

有人有 GraphQL 和 Firebase 的经验吗?我认为可以将 firebase 调用放置在相关字段的解析器中,将组件的 props 中的一些变量传递到查询的参数中。

如何使用 GraphQL 在 Firebase 中插入新数据?

最佳答案

为了回答您的问题,您可以通过三种方法来解决这个问题。

1。 Firebase 和 GraphQL

如果您决定使用 Firebase,则可以将 Firebase 的 API 一对一映射到 GraphQL 查询和变更。

您当然可以将 Firebase API 包装到 GraphQL 解析器中,并以这种方式进行调用。 This is a good example of that :

const ref = path => firebase.database().ref(path)
const getValue = path => ref(path).once('value')
const mapSnapshotToEntities = snapshot => snapshot.val().map((value, id) => ({ id, ...value }))
const getEntities = path => getValue(path).then(mapSnapshotToEntities)

const resolvers = {
Author: {
posts(author) {
return getEntities('posts').then(posts => filter(posts, { authorId: author.id }))
},
},

Post: {
author(post) {
return getEntities('authors').then(posts => filter(authors, { id: authorId }))
},
},
};

本质上,您在这里所做的就是使用 Firebase 作为数据库,它可以一直工作,直到您想要在解析器中以关系方式查询数据。如果无法在数据存储之上的服务器端执行联接,您将在解析器中向 Firebase 发出大量往返请求来满足单个请求。

大多数人使用 Firebase 的原因是因为它的实时功能,而不仅仅是作为数据存储,因为这方面的数据关系建模工具相当缺乏。这样,您可能最好使用不同的数据源迁移到 GraphQL。

2。 GraphQL 后端即服务

考虑到您愿意使用 Firebase 等 BaaS 产品,您可以考虑切换到 GraphQL BaaS。

3。自托管 GraphQL

如果您愿意使用自己的数据存储改用自托管解决方案,那么这样做也有很多好处。以下是一些重要人物:

  • 灵活地使用您自己的数据存储(或许可以使用多个数据存储来满足您特定应用的需求)

  • 自定义查询和突变

  • native 添加自定义逻辑,而不是通过附加到 API 中的 Webhook 的微服务

  • 推出您自己的身份验证和许可机制

  • 可能是一种成本较低的解决方案

关于Firebase 和 GraphQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37535374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com