-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmyfirebase.py
96 lines (78 loc) · 4.03 KB
/
myfirebase.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import requests
from kivy.app import App
class MyFirebase():
API_KEY = "AIzaSyB-vDE1bVma8GvTAiDda7Kg3MXh1GvH75M"
def criar_conta(self, email, senha):
link = f"https://identitytoolkit.googleapis.com/v1/accounts:signUp?key={self.API_KEY}"
print(email, senha)
info = {"email": email,
"password": senha,
"returnSecureToken": True}
requisicao = requests.post(link, data=info)
requisicao_dic = requisicao.json()
if requisicao.ok:
print("Usuário Criado")
# requisicao_dic["idToken"] -> autenticação
# requisicao_dic["refreshToken"] -> token que mantém o usuário logado
# requisicao_dic["localId"] -> id_usuario
refresh_token = requisicao_dic["refreshToken"]
local_id = requisicao_dic["localId"]
id_token = requisicao_dic["idToken"]
meu_aplicativo = App.get_running_app()
meu_aplicativo.local_id = local_id
meu_aplicativo.id_token = id_token
with open("refreshtoken.txt", "w") as arquivo:
arquivo.write(refresh_token)
req_id = requests.get(f"https://aplicativovendashash-default-rtdb.firebaseio.com/proximo_id_vendedor.json?auth={id_token}")
id_vendedor = req_id.json()
link = f"https://aplicativovendashash-default-rtdb.firebaseio.com/{local_id}.json?auth={id_token}"
info_usuario = f'{{"avatar": "foto1.png", "equipe": "", "total_vendas": "0", "vendas": "", "id_vendedor": "{id_vendedor}"}}'
requisicao_usuario = requests.patch(link, data=info_usuario)
# atualizar o valor do proximo_id_vendedor
proximo_id_vendedor = int(id_vendedor) + 1
info_id_vendedor = f'{{"proximo_id_vendedor": "{proximo_id_vendedor}"}}'
requests.patch(f"https://aplicativovendashash-default-rtdb.firebaseio.com/.json?auth={id_token}", data=info_id_vendedor)
meu_aplicativo.carregar_infos_usuario()
meu_aplicativo.mudar_tela("homepage")
else:
mensagem_erro = requisicao_dic["error"]["message"]
meu_aplicativo = App.get_running_app()
pagina_login = meu_aplicativo.root.ids["loginpage"]
pagina_login.ids["mensagem_login"].text = mensagem_erro
pagina_login.ids["mensagem_login"].color = (1, 0, 0, 1)
print(requisicao_dic)
def fazer_login(self, email, senha):
link = f"https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key={self.API_KEY}"
info = {"email": email,
"password": senha,
"returnSecureToken": True}
requisicao = requests.post(link, data=info)
requisicao_dic = requisicao.json()
if requisicao.ok:
refresh_token = requisicao_dic["refreshToken"]
local_id = requisicao_dic["localId"]
id_token = requisicao_dic["idToken"]
meu_aplicativo = App.get_running_app()
meu_aplicativo.local_id = local_id
meu_aplicativo.id_token = id_token
with open("refreshtoken.txt", "w") as arquivo:
arquivo.write(refresh_token)
meu_aplicativo.carregar_infos_usuario()
meu_aplicativo.mudar_tela("homepage")
else:
mensagem_erro = requisicao_dic["error"]["message"]
meu_aplicativo = App.get_running_app()
pagina_login = meu_aplicativo.root.ids["loginpage"]
pagina_login.ids["mensagem_login"].text = mensagem_erro
pagina_login.ids["mensagem_login"].color = (1, 0, 0, 1)
def trocar_token(self, refresh_token):
link = f"https://securetoken.googleapis.com/v1/token?key={self.API_KEY}"
info = {
"grant_type": "refresh_token",
"refresh_token": refresh_token
}
requisicao = requests.post(link, data=info)
requisicao_dic = requisicao.json()
local_id = requisicao_dic["user_id"]
id_token = requisicao_dic["id_token"]
return local_id, id_token