An Apollo Link that enables GraphQL queries, mutations, and subscriptions directly on Firebase Realtime Database without a GraphQL server.
Apollo-link-firebase is a custom Apollo Link that allows developers to query, mutate, and subscribe to Firebase Realtime Database data directly using GraphQL, without needing to set up a separate GraphQL server. It translates GraphQL operations into Firebase API calls, enabling realtime data synchronization within Apollo Client applications. This bridges the gap between Firebase's realtime capabilities and GraphQL's flexible data querying.
Frontend and full-stack developers building applications with Apollo Client and Firebase Realtime Database who want to leverage GraphQL for data fetching while maintaining Firebase's realtime features. It's particularly useful for teams adopting GraphQL but already invested in Firebase infrastructure.
Developers choose Apollo-link-firebase because it provides a seamless way to use GraphQL with Firebase Realtime Database, eliminating the overhead of building and maintaining a GraphQL server. It offers realtime subscriptions, familiar Firebase querying capabilities via GraphQL directives, and full integration with Apollo Client's caching ecosystem.
:fire: :link: apollo-link-firebase provides you a simple way to use Firebase with graphQL.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables querying and mutating Firebase Realtime Database directly with GraphQL, eliminating the need for a separate GraphQL server, as demonstrated in the Quickstart example with @rtdbQuery directives.
Supports Firebase events like 'value' and 'child_added' as GraphQL subscriptions, allowing live data updates without additional backend setup, as detailed in the Subscription section.
Allows fetching data from multiple Firebase paths in a single GraphQL query, reducing network requests and simplifying client-side data management, highlighted in the Data Join feature.
Integrates with Apollo Client's InMemoryCache using __typename and custom keys like @key, ensuring proper cache normalization and updates for optimized performance.
Currently only supports Firebase Realtime Database, not Firestore, as noted in the roadmap, which restricts its use with Firebase's more modern and scalable database options.
Requires learning non-standard GraphQL directives like @rtdbQuery and @rtdbSub, adding cognitive overhead and potential friction for developers familiar with vanilla GraphQL.
Bypasses a GraphQL server, so it lacks built-in support for server-side validation, authorization, or data transformation, which may necessitate additional layers for security and business rules.