reactfire VS googleapis

Compare reactfire vs googleapis and see what are their differences.

googleapis

Public interface definitions of Google APIs. (by googleapis)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
reactfire googleapis
17 13
3,474 6,500
0.5% 1.4%
5.1 9.6
9 days ago 1 day ago
TypeScript Starlark
MIT License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

reactfire

Posts with mentions or reviews of reactfire. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-12.
  • Angular Fire equivalent for React?
    3 projects | /r/reactjs | 12 Jul 2023
    ReactFire
  • How can I use Firebase to monitor live circuit tripping in a train IoT project?
    1 project | /r/Firebase | 13 Apr 2023
  • Can't call Google Cloud Function from a react app. I get googleauth.js:17 Uncaught Error: Cannot find module 'child_process' in my browser's console
    3 projects | /r/googlecloud | 9 Dec 2022
    Are you using Firebase? If not, you probably should. You can call functions (with Auth) from your react app. There's a framework you can use to help: https://github.com/FirebaseExtended/reactfire
  • Convex vs. Firebase
    7 projects | news.ycombinator.com | 21 Jun 2022
    I was an early developer at Firebase. I think we made Firebase so easy to use and never spoke on about the technicals that the whole software ecosystem now underestimates the complexity involved. I see various Firebase competitors asserting various "mistakes it makes" without really understanding what it delivers, which is understandable because we never marketed it like that because we spoke only about how it can help you build easier.

    The idea that n queries instead of a join is slow is not as true as you would think. Firestore supports streaming and pipelines at its core, and can reuse cache across operations. At the end of the day, the data goes over a narrow network channel. If you can saturate the channel, and don't leave any gaps, what's the performance difference if the data comes from a single query or many that are back-to-back. The data is transferred to the client either way. Both Firebase databases are pipelined, so this "many round trip" argument is not a decent argument if the client can issue the queries without waiting for responses (such as the code in this article).

    The other is consistency levels and correctness. I constantly see devs call Firebase an eventually consistent database which is wrong, its causally consistent [1], and this makes a huge difference when trying to do OLTP. The offline capabilities are built on the consistency primitives, and it's the only way it can work. So while this convex article is banging on about "End-to-End Correctness Philosophy", they miss the most important quality of correctness, and if they are not careful, will miss the required engineering, and then be unable to deliver an offline cache over real-time streams. I see this playing out with Supabase, I warned them personally before they got into YCombinator that what they were building was not causally consistent. Since then, they have had to rearchitect their real-time features after shipping them. (I have not reviewed their latest design yet so I have no idea whether they have it right yet).

    Many things sucked about Firebase. The bespoke security rules and the lack of views. So Convex is on the money shipping functions on the backend. I think Supabase is shipping competitors' mistakes with row-level security language. Personally, I think Firebase's mistakes can be fixed with the addition of an open-source Firebase server [1], as the clients are already open source and the mistakes are all to do with just the server. The real tech was always in the clients anyway (offline cache, connection management, operation queues).

    It will be interesting to see if building expressly for React is a good idea. Firebase shipped many adapters, like https://github.com/FirebaseExtended/reactfire, using the "thin-waist" principle of not over-fitting. But Javascript technology moved from callbacks to async while Firebase was in the field, so the current API is not now idiomatic. But convex is setting itself for even more ecosystem fragility, what if React changes API or falls out of favor? This is a big risk! I hope they can roll with whatever happens!

    [1] https://observablehq.com/@tomlarkworthy/redis-backend-1

  • Do you have to use an ODM for firestore?
    2 projects | /r/Firebase | 25 May 2022
    Since you mentioned you're also using React, we have a React specific library (ReactFire) that also helps out quite a bit.
  • Get current user firestore database
    1 project | /r/Firebase | 23 May 2022
    Use ReactFire! It's our official library for React and Firebase. It has a bunch of useful hooks that probably handle most of the actions you are looking to do.
  • Intro To ReactFire v4 - Login, Logout Create Account And Protected Routes
    2 projects | dev.to | 1 Mar 2022
    This is a quick walkthrough of a code example using ReactFire v4 in an application. The application supports login, logout, create an account, and protected routes. We also walk through two approaches for protecting routes since the AuthCheck component that existed in v3 no longer exists in v4 of ReactFire.
  • Is state management (React Context, Redux) really needed for Firebase?
    1 project | /r/Firebase | 31 Jan 2022
    FWIW check out ReactFire, it gives you hooks and context for Firebase. Will likely feel more natural than using the vanilla platform-agnostic SDK.
  • React Query + Firestore = ❤️
    1 project | /r/Firebase | 5 Sep 2021
    3 projects | /r/reactnative | 5 Sep 2021
    reactfire

googleapis

Posts with mentions or reviews of googleapis. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-24.
  • REST vs gRPC
    2 projects | dev.to | 24 May 2023
    Rich Error Model: This model enables servers to return and clients to consume additional error details expressed as one or more protobuf messages. It further specifies a standard set of error message types to cover the most common error (QuotaFailure, PreconditionFailure, BadRequest, etc). When an error occurs, the server returns the appropriate status code along with an optional error message.
  • Mullvad Leta
    2 projects | news.ycombinator.com | 16 May 2023
  • Reasons to use gRPC/Protobuf?
    3 projects | /r/golang | 30 Apr 2023
    We structure the repo according to proto packages. It's quite similar to how the googleapis repository is structured.
  • Problem Details for HTTP APIs
    1 project | news.ycombinator.com | 30 Mar 2023
    It's unfortunate that the spec doesn't contain custom fields to a sub-object like other RPC specs, like proto Status [1]. They should have had the message go into a field named "message" and not "detail". And have a field like "details" where the opaque type is serialized, which should be named by the "type" field. The problem is that systems with existing error types may have field name conflicts with type, title, status, detail, or instance, so we'd just dump the actual error into a custom "extension member" which by definition, isn't standard.

    [1] https://github.com/googleapis/googleapis/blob/1c8a25ab153eef...

  • [Media] Dear Google, When Rust? Sincerely, Internet
    8 projects | /r/rust | 17 Mar 2023
    Protobuf (https://github.com/googleapis/googleapis)
  • gRPC vs REST: Comparing API Styles in Practice
    6 projects | dev.to | 21 Feb 2023
    All the required changes can be viewed in our last demo, the grpc-rest-app implementation. First, we need to update our proto service interface to help the proxy service make our gRPC service methods available at the right URLs and for the correct HTTP operations. To do this, the Google API HTTP library provides annotations we can add to our proto to describe the correct mappings. The buf tool allows us to include the googleapis dependency as a plugin in our buf.yaml file).
  • Code Design Decision – Always throw custom exceptions
    2 projects | news.ycombinator.com | 19 Dec 2022
    I think this only makes sense if the 3rd party is also throwing custom exceptions.

    If you want to reduce coupling you should avoid throwing custom exceptions at all. Semantic information can go in the error message and log. The error type should be used to indicate to your program whether an error is recoverable, retriable or some other action needs to be taken. For example google on has 16 canonical error codes for all APIs.

    https://github.com/googleapis/googleapis/blob/master/google/...

  • Microservice Communication
    4 projects | /r/golang | 17 Nov 2022
    OpenAPI and possibly developing reusable, versioned client libraries could help, but it's a major undertaking that gRPC makes redundant. I'd be tempted to use grpc-gateway even if I had to implement a REST API. Try looking into buf and monorepo structures for proto management, e.g. something like GoogleCloudPlatform/microservices-demo. For more thorough proto and grpc-gateway definition examples, see googleapis/googleapis.
  • Convex vs. Firebase
    7 projects | news.ycombinator.com | 21 Jun 2022
    Firestone does provide global consistency, so the following quote is incorrect:

    > In Cloud Firestore, the data on the client are loaded from the database at different points in time. Even if you listen for realtime updates, results from separate queries will not remain in sync. This creates consistency anomalies and bugs in your app.

    Here is a link to the protocol documentation that the clients use to support it: https://github.com/googleapis/googleapis/blob/d0b394f188e8c3...

    I'd link to the client implementation but it's quite involved.

  • Useful Old Technologies: ASN.1 (2013)
    2 projects | news.ycombinator.com | 25 Dec 2021
    Well there is Timestamp defined as a well known type which is available to all implementations despite not being a primitive type [1]. Plus one is obviously able to define any other custom types if necessary- eg as seen in [2].

    [1] https://developers.google.com/protocol-buffers/docs/referenc...

    [2] https://github.com/googleapis/googleapis/blob/master/google/...

What are some alternatives?

When comparing reactfire and googleapis you can also consider the following projects:

react-query-firebase - React Query hooks for managing asynchronous operations with Firebase. Supports Authentication, Analytics, Firestore & Realtime Database.

supabase - The open source Firebase alternative.

use-pagination-firestore - 🔥 React hook for non-cumulative pagination of Firebase Firestore collections

powerproto - 🎉 An awesome version control tool for protoc and its related plugins.

strapi-connector-firestore - Strapi database connector for Firestore database on Google Cloud Platform.

readyset - Readyset is a MySQL and Postgres wire-compatible caching layer that sits in front of existing databases to speed up queries and horizontally scale read throughput. Under the hood, ReadySet caches the results of cached select statements and incrementally updates these results over time as the underlying data changes.

rowy - Low-code backend platform. Manage database on spreadsheet-like UI and build cloud functions workflows in JS/TS, all in your browser.

grpc-gateway - gRPC to JSON proxy generator following the gRPC HTTP spec

react-famous - React bridge to Famo.us

gogoprotobuf - [Deprecated] Protocol Buffers for Go with Gadgets

Redux Slim Async - :alien: A Redux middleware to ease the pain of tracking the status of an async action

parthenon - The Symfony SaaS boilerplate