Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to fetch firebase data?

I am new to python and firebase and I am trying to flaten my firebase database.

I have a database in this format

enter image description here

each cat has thousands of data in it. All I want is to fetch the cat names and put them in an array. for example I want the output to be ['cat1','cat2'....]

I was using this tutorial http://ozgur.github.io/python-firebase/

from firebase import firebase
firebase = firebase.FirebaseApplication('https://your_storage.firebaseio.com', None)
result = firebase.get('/Data', None)

the problem with the above code is it'll attempt to fetch all the data under Data. How can I only fetch the "cats"?

like image 446
e.iluf Avatar asked Nov 16 '25 04:11

e.iluf


1 Answers

if you want to get the values inside the cats as columns, try using the pyrebase, using pip install pyrebase at cmd / anaconda prompt(later prefered if you didn't set up PIP or Python at your environment paths. after installing:

import pyrebase

config {"apiKey": yourapikey
"authDomain": yourapidomain
"databaseURL": yourdatabaseurl,  
"storageBucket": yourstoragebucket,  
"serviceAccount": yourserviceaccount
}

Note: you can find all the information above at your Firebase's console: https://console.firebase.google.com/project/ >>> your project >>> click on the icon "<'/>" with the tag "add firebase to your web app

back to the code...

make a neat definition so you can store it into a py file:

def connect_firebase():
# add a way to encrypt those, I'm a starter myself and don't know how
username: "usernameyoucreatedatfirebase"
password: "passwordforaboveuser"

    firebase = pyrebase.initialize_app(config)
    auth = firebase.auth() 

    #authenticate a user > descobrir como não deixar hardcoded
    user = auth.sign_in_with_email_and_password(username, password)

    #user['idToken']
    # At pyrebase's git the author said the token expires every 1 hour, so it's needed to refresh it
    user = auth.refresh(user['refreshToken'])

    #set database
    db = firebase.database()

    return db

Ok, now save this into a neat .py file

NEXT, at your new notebook or main .py you're going to import this new .py file that we'll call auth.py from now on...

from auth import *

# add do a variable
db = connect_firebase()

#and now the hard/ easy part that took me a while to figure out:
# notice the value inside the .child, it should be the parent name with all the cats keys
values = db.child('cats').get()

# adding all to a dataframe you'll need to use the .val()  
data = pd.DataFrame(values.val())

and thats it, print(data.head()) to check if the values / columns are where they're expected to be.

like image 167
mrbTT Avatar answered Nov 18 '25 18:11

mrbTT