Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Driver: Firebase #4213

Open
IagoLast opened this issue Jan 23, 2017 · 35 comments
Open

Driver: Firebase #4213

IagoLast opened this issue Jan 23, 2017 · 35 comments
Labels

Comments

@IagoLast
Copy link

IagoLast commented Jan 23, 2017

I think that could be a nice addition since firebase is widely used and there's no dashboard or admin panel for it.

https://firebase.google.com/

⬇️ Please click the 👍 reaction instead of leaving a +1 or update? comment

@thomashs-zz
Copy link

Hey IagoLast. Would you join me on this?

@IagoLast
Copy link
Author

@thomashs sure! But this is a Big thing. I don't know where to start and I think that kind of things require the aproval of a Core contributor right?

@thomashs-zz
Copy link

@IagoLast yeap. Here's how they suggest driver implementation: https://github.com/metabase/metabase/wiki/Writing-A-Driver

@IagoLast
Copy link
Author

ummm I`m not sure about how this works... is some kind of meta-lang? @thomashs

@salsakran
Copy link
Contributor

@IagoLast the doc @thomashs references describes how to write a driver.

All GUI queries are expressed in MBQL(https://github.com/metabase/metabase/wiki/Query-Language-'98) , and a "driver" is effectively a transpiler from MBQL to the target language.

I'll also note that any driver PR must have include integration tests against that data source, and a way for us to run them from CI.

@IagoLast
Copy link
Author

IagoLast commented Feb 27, 2017

@thomashs ok, lets try to do it. were do we start?

@thetwosents

This comment has been minimized.

@prigal

This comment has been minimized.

@SantiMunin
Copy link

SantiMunin commented Mar 13, 2017

I can't say for sure yet (I'd need approval from my company and some time that I might not have) but I'd like to join this effort.

At the very least I should be able to guide @IagoLast (I have some experience with sql-to-something compilation and we know each other, so it'd be a nice experience).

@prigal
Copy link

prigal commented Mar 14, 2017

I have added my +1 yesterday, but after digging I'm not sure to really understand this issue.

Do you mean access to firebase database or firebase analytics ?

(I was interested in gathering analytics from firebase in metabase, and it looks like I can send my events to bigquery and then access bigquery from metabase to build my dashboard)

@thetwosents
Copy link

The database would be my vote. There are ways to get data from Firebase Analytics already but querying / visualizing your data isn't accessible from BI tools

@salsakran
Copy link
Contributor

For what it's worth, for firebase specifically, we'd strongly suggest getting your database and/or analytics events into BigQuery somehow vs coding against the database rest api directly.

I'm leaving this issue open in case to not squash anyone's motivation, but even if it does get addressed in a PR, I'd still recommend using BQ =)

@IagoLast
Copy link
Author

@pierrerigal I meant firebase database.

@salsakran I understand you mean to dump the data into a different database and then do BI from metabase against the "backup", I dind´t know that BigQuery was supported. I assume that BQ is automatically synchronized with firebase right?

I was doing something similar with mongoDB. I have my real data in firebase and a mongoDB copy where the BI work is done through metabase. This requires extra work to keep both databases synced. I think that it would be a nice adition being able to sync firebase directly.

@thetwosents
Copy link

thetwosents commented Mar 14, 2017 via email

@IagoLast
Copy link
Author

@thetwosents afaik BQ only supports synchronizing analytics data from firebase, but I want the actual database data from my app.

am I right?

@thetwosents
Copy link

thetwosents commented Mar 14, 2017 via email

@thetwosents
Copy link

thetwosents commented Mar 14, 2017 via email

@salsakran
Copy link
Contributor

What we've found working with companies on eg Parse, is that you're better off moving to a dedicated data warehouse + ETL (or ELT) world sooner rather than later.

At a certain stage in the company lifecycle, the benefits of having all of your data in one place and in a semi-reconciled format outweighs the hassle of getting it all in there. This keep events and your application database in a place where you can cross reference them, do transforms or joins on them, etc. It simplifies analyst (and end user) workflows, and allows more sophisticated work faster.

With DaaS's (Database as a service with custom APIs), the hassle of writing a connector (or driver in our parlance) is usually a bit of a drag. Given that eventually most people needs to get data out of said DaaS and into a real data warehouse to do any real work, we've found people happier when they "graduate" to a real data warehouse sooner than folks on MySQL or PostgreSQL for example.

I'll also note that It would be much less work to write a small job that dumps firebase database data onto Google Cloud Storage, and cron's an ingestion than writing a MB driver.

@thetwosents
Copy link

thetwosents commented Mar 14, 2017 via email

@dimitri320

This comment has been minimized.

@IagoLast IagoLast reopened this May 20, 2018
@IagoLast

This comment has been minimized.

@dannyeuu

This comment has been minimized.

@frapsMatheus
Copy link

This would be great, just exported my firebase to BigQuery but the only useful way to use the app events on it is trough SQL Querys.

@joshuarcher
Copy link

@matrpedreira How'd you get firestore exporting to BigQuery?

@kamikazechaser
Copy link

Firebase now has 2 database types: Firestore and Realtime database.

Not viable with Firestore. Firestore has a r/w pricing model. Even trying to sync a periodically dumped JSON will be expensive, not to mention the complex pipeline you have to build just to visualize the data.

With Real time database, cost is not an issue. But you still have to introduce the complexity of a pipeline to sync with BigQuery.

You can directly integrate analytics with BigQuery and it will sync. So only analytics is possible that through BigQuery.

I don't see this being viable for Metabase.

@frapsMatheus
Copy link

Hi @joshuarcher. This tutorial is going to help you.
https://support.google.com/firebase/answer/6318765?hl=pt

@mazameli mazameli added the Priority:P2 Average run of the mill bug label Apr 29, 2020
@enguerrandvidor

This comment has been minimized.

@takuoka

This comment has been minimized.

@oodavid
Copy link

oodavid commented Mar 18, 2021

In 2021 Firebase has a built-in BigQuery integration:

https://support.google.com/firebase/answer/6318765

Looks as simple as flipping a switch in the Firebase console:

Screenshot 2021-03-18 at 10 54 26

I will try this today and report back

@oodavid
Copy link

oodavid commented Mar 18, 2021

Boo, it doesn't include Realtime DB or Firestore :(

@oodavid
Copy link

oodavid commented Mar 18, 2021

Turns out there's an extension:

https://firebase.google.com/products/extensions/firestore-bigquery-export

@paulsUsername

This comment has been minimized.

@confiq

This comment has been minimized.

@NooAn

This comment was marked as spam.

@brunobergher brunobergher changed the title Database Support proposal: firebase Driver: Firebase Jan 11, 2023
@jamesgreenblue
Copy link

jamesgreenblue commented Feb 22, 2023

Following the advice of @salsakran we are using BigQuery as an intermediary between Firestore (in datastore mode) and Metabase. We are hitting issues with primary and foreign keys, have written this up in the discourse:

https://discourse.metabase.com/t/firestore-big-query-metabase-issue-with-joining-and-displaying-foreign-key-name-value/24051

For the people commenting in this thread, have you managed to get a pipeline between Firestore and Metabase working? I hope I'm missing something obvious (we are using Firestore in Datastore mode).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests