Vehicle-Anti-Theft-Face-Rec.../DBHelper.py

187 lines
5.7 KiB
Python
Raw Normal View History

import pyrebase
firebaseConfig = {
'apiKey': "AIzaSyAdL0W5HscjEDFPK4BDi6Cnc7FLa30GPYY",
'authDomain': "vehicleantitheftrecognition.firebaseapp.com",
'databaseURL': "https://vehicleantitheftrecognition.firebaseio.com",
'projectId': "vehicleantitheftrecognition",
'storageBucket': "vehicleantitheftrecognition.appspot.com",
'messagingSenderId': "163692530359",
'appId': "1:163692530359:web:b6dc7ccfc56a79afb11b32",
'measurementId': "G-EPWP2LK89Q",
'serviceAccount': 'vehicleantitheftrecognition-firebase-adminsdk-krrgw-05da515de5.json'
}
firebase = pyrebase.initialize_app(firebaseConfig)
db = firebase.database()
auth = firebase.auth()
storage = firebase.storage()
# Create account function which creates a new authentication info.
2020-10-14 14:17:42 +00:00
def create_account(username, password, confirm_password):
email = username + "@hotmail.com"
2020-10-14 14:17:42 +00:00
if password == confirm_password:
auth.create_user_with_email_and_password(email, password)
2020-10-14 14:17:42 +00:00
print("Account successfully created.")
else:
print("Confirmed password doesn't match to other password.")
# Login function which verifies the given authentication info.
def login(username, password):
email = username + "@hotmail.com"
try:
auth.sign_in_with_email_and_password(email, password)
print("Successfully Logged in.")
except:
print("Invalid username or password.")
2020-11-18 04:14:51 +00:00
# Uploads the data of specified user into firebase.
2020-10-14 14:17:42 +00:00
def upload_data(user_id, firstname, lastname, email, phone, address):
data = {"First Name": firstname, "Last Name": lastname, "E-Mail": email, "Phone": phone, "Address": address}
2020-10-14 14:17:42 +00:00
db.child("Users").child(user_id).set(data)
2020-11-18 04:14:51 +00:00
# Removes the data of specified user from firebase.
2020-10-14 14:17:42 +00:00
def remove_data(user_id):
db.child("Users").child(user_id).remove()
# Returns the first name or else an empty string.
2020-10-14 14:17:42 +00:00
def get_firstname(user_id):
2020-11-18 02:56:47 +00:00
firstname = db.child("Users").child(str(user_id)).child("First Name").get().val()
return firstname
# Returns the last name or else an empty string.
2020-10-14 14:17:42 +00:00
def get_lastname(user_id):
2020-11-18 02:56:47 +00:00
lastname = db.child("Users").child(str(user_id)).child("Last Name").get().val()
return lastname
# Returns the e-mail or else an empty string.
2020-10-14 14:17:42 +00:00
def get_email(user_id):
2020-11-18 02:56:47 +00:00
email = db.child("Users").child(str(user_id)).child("E-Mail").get().val()
return email
# Returns the phone or else an empty string.
2020-10-14 14:17:42 +00:00
def get_phone(user_id):
2020-11-18 02:56:47 +00:00
phone = db.child("Users").child(str(user_id)).child("Phone").get().val()
return phone
# Returns the address or else an empty string.
2020-10-14 14:17:42 +00:00
def get_address(user_id):
2020-11-18 02:56:47 +00:00
address = db.child("Users").child(str(user_id)).child("Address").get().val()
return address
# Uploads the photos of user, input should be something like "example.jpg"
def upload_user_photo(user_id):
storage.child("Photos_of_Users/" + user_id).put("Facial_images/face_rec/train/" + user_id)
# Uploads the photos of thief, input should be something like "example.jpg"
def upload_thief_photo(thief_id):
storage.child("Photos_of_Thieves/" + thief_id).put("Facial_images/face_rec/train/" + thief_id)
# Downloads the specified user's photos, input should be something like "example.jpg"
def download_user_photo(user_id):
storage.child("Photos_of_Users/" + user_id).download("Facial_images/face_rec/train/" + user_id)
# Downloads the specified thief's photos, input should be something like "example.jpg"
def download_thief_photo(thief_id):
storage.child("Photos_of_Thieves/" + thief_id).download("Photos_of_Thieves/" + thief_id)
# Deletes photo of the specified user.
2020-10-14 14:17:42 +00:00
def delete_user_photo(user_photo):
storage.delete('Photos_of_Users/' + user_photo)
2020-11-05 17:09:20 +00:00
2020-11-05 17:14:27 +00:00
2020-11-05 17:09:20 +00:00
# Deletes photo of the specified thief.
def delete_thief_photo(user_photo):
storage.delete('Photos_of_Thieves/' + user_photo)
2020-11-18 02:56:47 +00:00
# Motor signal getter
def get_motor():
motor = db.child("signal").child("1").child("motor").get().val()
2020-11-18 02:56:47 +00:00
return motor
# Motor signal setter
def set_motor(motor):
db.child("signal").child("1").child("motor").set(motor)
2020-11-18 02:56:47 +00:00
# Alarm signal getter
def get_alarm():
alarm = db.child("signal").child("1").child("alarm").get().val()
2020-11-18 02:56:47 +00:00
return alarm
# Alarm signal setter
def set_alarm(alarm):
db.child("signal").child("1").child("alarm").set(alarm)
2020-11-18 02:56:47 +00:00
# Power signal getter
def get_power():
alarm = db.child("signal").child("1").child("power").get().val()
2020-11-18 02:56:47 +00:00
return alarm
# Power signal setter
def set_power(power):
db.child("signal").child("1").child("power").set(power)
2020-11-18 04:14:51 +00:00
# Returns the first name or else an empty string.
def get_signal_firstname():
firstname = db.child("signal").child("2").child("First Name").get().val()
2020-11-18 04:14:51 +00:00
return firstname
# Returns the last name or else an empty string.
def get_signal_lastname():
lastname = db.child("signal").child("2").child("Last Name").get().val()
2020-11-18 04:14:51 +00:00
return lastname
# Returns the e-mail or else an empty string.
def get_signal_email():
email = db.child("signal").child("2").child("E-Mail").get().val()
2020-11-18 04:14:51 +00:00
return email
# Returns the phone or else an empty string.
def get_signal_phone():
phone = db.child("signal").child("2").child("Phone").get().val()
2020-11-18 04:14:51 +00:00
return phone
# Returns the address or else an empty string.
def get_signal_address():
address = db.child("signal").child("2").child("Address").get().val()
2020-11-18 04:14:51 +00:00
return address
# Uploads the data of user input into firebase.
2020-11-18 18:18:51 +00:00
def upload_signal_data(firstname, lastname, email, phone, address):
2020-11-18 04:14:51 +00:00
data = {"First Name": firstname, "Last Name": lastname, "E-Mail": email, "Phone": phone, "Address": address}
db.child("signal").child("2").set(data)
2020-11-18 04:14:51 +00:00
# Removes the inputs.
def reset_data():
db.child("signal").child("2").remove()
2020-11-18 18:18:51 +00:00
if __name__ == "__main__":
upload_signal_data("Batuhan", "Başoğlu", "bbaso079@uottawa.ca", "6138072241", "257 Lisgar Street")