I am trying to access an instance variable named self.localId in my kivy screen and it keeps saying the saying the instance doesn't exist after i have initialised it. I know I have an error In my code but im having a hard time identifying it. is there a different way to initialising instances in a kivy screen? but here is my code. I would appreciate any help
mainfile.py
from kivy.app import App
import requests
import json
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.lang import Builder
from firebase import firebaseclass LoginWindow(Screen):passclass ProfileWindow(Screen):def __init__(self):self.localId = Nonedef sign_in_existing_user(self, email, password):signin_url = "https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=" + self.waksignin_payload = {"email": email, "password": password, "returnSecureToken": True}signin_request = requests.post(signin_url, data=signin_payload)sign_up_data = json.loads(signin_request.content.decode())app = App.get_running_app()print(signin_request.ok)print(signin_request.content.decode())if signin_request.ok == True:refresh_token = sign_up_data['refreshToken']self.localId = sign_up_data['localId']idToken = sign_up_data['idToken']# Save refreshToken to a filewith open(app.refresh_token_file, "w") as f:f.write(refresh_token)print(sign_up_data['localId'])app.root.current = "page"elif signin_request.ok == False:error_data = json.loads(signin_request.content.decode())error_message = error_data["error"]['message']app.root.ids.login.ids.login_message.text = error_message.replace("_", " ")def print_localId(self):print(self.localId.text)def __init__(self, **kwargs):super(ProfileWindow, self).__init__(**kwargs)window = ProfileWindow()class MyApp(App):refresh_token_file = "refresh_token.txt"def build(self):self.page = ProfileWindow()self.refresh_token_file = self.user_data_dir + self.refresh_token_filereturn smclass WindowManager(ScreenManager):passsm = Builder.load_file("kivy.kv")#sm = WindowManager() if __name__ == '__main__':MyApp().run()
kivy.kv
WindowManager:id: window managerLoginWindow:id: loginname: "login"ProfileWindow:id: pagename: "page"<LoginWindow>canvas.before:Color:rgba: 1, 1, 1, 1Rectangle:pos: self.possize: self.sizeTextInput:id: emailhint_text: "Email"multiline: Falsepos_hint: {"center_x": 0.2 , "center_y":0.9}size_hint: 0.4, 0.10TextInput:id: passwordhint_text: "Password"multiline: Falsepos_hint: {"center_x": 0.2, "center_y": 0.8}size_hint: 0.4, 0.10password: TrueButton:pos_hint:{"x":0.3,"y":0.05}size_hint: 0.4, 0.1text: "Login"font_size: (root.width**2 + root.height**2) / 14**4background_color: (0.082, 0.549, 0.984, 1.0)background_normal: ''on_release:app.page.sign_in_existing_user(email.text, password.text)<ProfileWindow>:canvas.before:Color:rgba: 1, 1, 1, 1Rectangle:pos: self.possize: self.sizeButton:pos_hint:{"x":0.3,"y":0.05}size_hint: 0.4, 0.1text: "Print localId"font_size: (root.width**2 + root.height**2) / 14**4background_color: (0.082, 0.549, 0.984, 1.0)background_normal: ''on_release:root.print_localId()
Traceback
[INFO ] [Base ] Leaving application in progress...
Traceback (most recent call last):File "/Users/temitayoadefemi/PycharmProjects/test6/mainfile.py", line 109, in <module>MyApp().run()File "/Users/temitayoadefemi/PycharmProjects/test6/venv/lib/python3.7/site-packages/kivy/app.py", line 855, in runrunTouchApp()File "/Users/temitayoadefemi/PycharmProjects/test6/venv/lib/python3.7/site-packages/kivy/base.py", line 504, in runTouchAppEventLoop.window.mainloop()File "/Users/temitayoadefemi/PycharmProjects/test6/venv/lib/python3.7/site-packages/kivy/core/window/window_sdl2.py", line 747, in mainloopself._mainloop()File "/Users/temitayoadefemi/PycharmProjects/test6/venv/lib/python3.7/site-packages/kivy/core/window/window_sdl2.py", line 479, in _mainloopEventLoop.idle()File "/Users/temitayoadefemi/PycharmProjects/test6/venv/lib/python3.7/site-packages/kivy/base.py", line 342, in idleself.dispatch_input()File "/Users/temitayoadefemi/PycharmProjects/test6/venv/lib/python3.7/site-packages/kivy/base.py", line 327, in dispatch_inputpost_dispatch_input(*pop(0))File "/Users/temitayoadefemi/PycharmProjects/test6/venv/lib/python3.7/site-packages/kivy/base.py", line 293, in post_dispatch_inputwid.dispatch('on_touch_up', me)File "kivy/_event.pyx", line 707, in kivy._event.EventDispatcher.dispatchFile "/Users/temitayoadefemi/PycharmProjects/test6/venv/lib/python3.7/site-packages/kivy/uix/behaviors/button.py", line 179, in on_touch_upself.dispatch('on_release')File "kivy/_event.pyx", line 703, in kivy._event.EventDispatcher.dispatchFile "kivy/_event.pyx", line 1214, in kivy._event.EventObservers.dispatchFile "kivy/_event.pyx", line 1098, in kivy._event.EventObservers._dispatchFile "/Users/temitayoadefemi/PycharmProjects/test6/venv/lib/python3.7/site-packages/kivy/lang/builder.py", line 64, in custom_callbackexec(__kvlang__.co_value, idmap)File "/Users/temitayoadefemi/PycharmProjects/test6/kivy.kv", line 86, in <module>root.print_localId()File "/Users/temitayoadefemi/PycharmProjects/test6/mainfile.py", line 73, in print_localIdprint(self.localId.text)
AttributeError: 'ProfileWindow' object has no attribute 'localId'