如何防止在Python中从firestore数据库获取数据时出现的值错误



我使用firebase firestore数据库为我的KivyMD项目。在程序中,当按下按钮时,如果数据不存在,则应将数据保存在数据库中。它工作成功。但是问题是,当用户输入现有的电子邮件地址并在第二次输入另一个电子邮件时出现ValueError,因为它无效。我能做些什么来预防呢?

误差

ValueError: The default Firebase app already exists. This means you called initialize_app() more than once without providing an app name as the second argument. In most cases you only need to call initialize_app() once. But if you do want to initialize multiple apps, pass a second argument to initialize_app() to give each app a unique name.

def send_data(self, email, password):
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
cred = credentials.Certificate("firestore.json")
firebase_admin.initialize_app(cred)
db = firestore.client()
data = {
"Email": email,
"Password": password
}
query_email = db.collection(u'Users').where(u"Email", u"==", data["Email"]).get()
if query_email:
print('exist')
else:
print('does not exist')
db.collection(u'Users').add(data)

根据错误消息,问题在于以下几行:

import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
cred = credentials.Certificate("firestore.json")
firebase_admin.initialize_app(cred)
db = firestore.client()

如果可能的话,将这些行移出函数。您应该在其他地方初始化db并将其传递给您的函数。

def send_data(self, email, password, db):

最新更新