nhorvath / Pyrebase4

A simple python wrapper for the Firebase API. ⛺
248 stars 61 forks source link

I could compile my app, now I can not #66

Closed AlejandroPG10 closed 2 months ago

AlejandroPG10 commented 1 year ago

Hi, I have my developed app with kivymd in which I used to use pyrebase4.

I could compile my apk with buildozer without any kind of problem. Suddenly, one week ago I realized that now I can not. The apk crashes in android device. I'm using the same files and the same buildozer.spec that I used when there was not any porblem with this.

I've been reading a lot during last days about all the problems with pyrebase.

My doubt is: With the same requirements that I was using:

requirements = python3,kivy==2.1.0,kivymd==1.1.1,kivygradient,mapview,pyrebase,geocoder,email-validator,requests,urllib3,chardet,idna,ratelim,decorator,click,dnspython,pillow,oauth2client,httplib2,pyparsing,pyasn1,pyasn1_modules,virtualenv,six,sh,rsa,requests-toolbelt,python-jwt,pygments,pycryptodome,ptyprocess,protobuf,platformdirs,pexpect,kivy-garden.mapview,kivy-garden,jws,googleapis-common-protos,gcloud,future,filelock,docutils,distlib,backports.entry-points-selectable,jwcrypto,cryptography,Deprecated,wrapt

It is possible to edit something or to do something different to be able again for compiling the apk? I've read about the new version pyrebase 4.7.0. Could I solve it if I install the new one on my pc? Should I change something different?

Any help, please?

Thank you in advance.

AG-IT-Solutions commented 1 year ago

Check this solution, maybe that's your issue, too: https://stackoverflow.com/questions/76208396/pyrebase4-error-cannot-import-name-gaecontrib

Here are more infos on the issue: https://github.com/requests/toolbelt/issues/361

AlejandroPG10 commented 1 year ago

Check this solution, maybe that's your issue, too: https://stackoverflow.com/questions/76208396/pyrebase4-error-cannot-import-name-gaecontrib

Here are more infos on the issue: requests/toolbelt#361

I tried by changing the version of request-toolbelt on my buildozer.spec and it didn't work. Is it necessary to install it on my PC too?

I don't know what to do in order to be able to compile again the apk

AlejandroPG10 commented 1 year ago

I've recently read that the problem that we had with pyrebase4 and requests is now solved with the last update (4.7.1).

On my computer my app is working.

Can anybody tell me wich requirements should I use now for this?

import pyrebase from kivymd.app import MDApp class MyFireBase(): def init(self): self.logged_mail = None def login_app(self, mail, password): config = { "apiKey": "****", "authDomain": "**", "databaseURL": "*****", "storageBucket": "**"} firebase = pyrebase.initialize_app(config) db = firebase.database() users = db.child("Accesos").get() for user in users.each(): if str(user.val()["password"]) == password and str(user.val()["mail"]) == mail: self.logged_mail = mail #Guardamos el mail que ha entrado MDApp.get_running_app().change_screen("home_screen") break else: MDApp.get_running_app().root.ids['login_screen'].ids['invalid'].text = 'Incorrect user or password'**

Normally I used to use this ones: requirements = python3,kivy==2.1.0,kivymd==1.1.1,kivygradient,mapview,pyrebase,geocoder,email-validator,requests,urllib3,chardet,idna,ratelim,decorator,click,dnspython,pillow,oauth2client,httplib2,pyparsing,pyasn1,pyasn1_modules,virtualenv,six,sh,rsa,requests-toolbelt,python-jwt,pygments,pycryptodome,ptyprocess,protobuf,platformdirs,pexpect,kivy-garden.mapview,kivy-garden,jws,googleapis-common-protos,gcloud,future,filelock,docutils,distlib,backports.entry-points-selectable,jwcrypto,cryptography,Deprecated,wrapt

But now they still don't work.

Regards, Alejandro

AlejandroPG10 commented 1 year ago

Finally I could compile my apk and it is working. After pyrebase 4.7.1 I tried to check all dependencies of it by using pipdeptree -p pyrebase (pip3 install pipdeptree to install it). By reading some issues related to this problem, I've realized that I had to specify the version of "requests-toolbelt" , "requests" and "urllib3" on the requirements of buildozer.spec. (Even if you're using pyrebase 4.7.1).

I'm going to share my requirements for anybody who ever needs them.

My app is working on andorid by using this:

requirements = python3,kivy==2.2.0,kivymd==1.1.1,kivygradient,pyrebase,gcloud,googleapis-common-protos,protobuf,httplib2,pyparsing,oauth2client,pyasn1,pyasn1-modules,rsa,six,pycryptodome,python-jwt,jwcrypto,cryptography,pycparser,pillow,Deprecated,wrapt,requests==2.29.0,certifi,charset-normalizer,idna,urllib3==1.26.15,requests-toolbelt==0.10.1