Spaces:
Runtime error
Runtime error
| from dotenv import load_dotenv | |
| load_dotenv() | |
| from firebase import firebase | |
| import os | |
| secret=os.environ['FIREBASE_TOKEN'] | |
| user_id="db" #this file is for dropbox token management through firebase only | |
| auth=firebase.FirebaseAuthentication(secret=secret,email="[email protected]",extra={"id":user_id}) | |
| fb_url="https://device-1a455.firebaseio.com" | |
| fb= firebase.FirebaseApplication(fb_url,auth) | |
| base_dir="/users/"+user_id | |
| def fb_get(item): | |
| """ item need to be in format d2_refreshtoken same name will be present in the firebase | |
| d2 means second dropbox instance or app. | |
| """ | |
| return fb.get(base_dir,item) | |
| def fb_update(item,value): | |
| """ item need to be in format d2_refreshtoken same name will be present in the firebase | |
| d2 means second dropbox instance or app. | |
| """ | |
| return fb.patch(base_dir,{item:value}) | |
| import re | |
| def convert_to_firebase_key(inStr): | |
| """Converts a string to a Firebase key. | |
| Args: | |
| inStr: The string to convert. | |
| Returns: | |
| A Firebase key, or None if the inStr is not a valid Firebase key. | |
| """ | |
| # Firebase keys must be between 3 and 128 characters long. | |
| # They must start with a letter, number, or underscore. | |
| # They can only contain letters, numbers, underscores, hyphens, and periods. | |
| # They cannot contain spaces or other special characters. | |
| # Convert the inStr to lowercase. | |
| outStr = inStr.lower() | |
| # Replace all spaces with underscores. | |
| outStr = outStr.replace(' ', '_') | |
| # Remove any leading or trailing underscores. | |
| outStr = outStr.lstrip('_').rstrip('_') | |
| # Remove any character not matching firebase_key_Regex. | |
| outStr=re.sub(r'[^\w\-.]', '', outStr) | |
| firebase_key_regex = re.compile(r'^[a-zA-Z0-9_][a-zA-Z0-9-_.]*$') | |
| # The following string values are not allowed for Firebase keys: | |
| # - "firebase" | |
| # - "google" | |
| # - "android" | |
| # - "ios" | |
| # - "web" | |
| # - "console" | |
| # - "auth" | |
| # - "database" | |
| # - "storage" | |
| # - "hosting" | |
| # - "functions" | |
| # - "firestore" | |
| # - "realtime-database" | |
| # - "remote-config" | |
| # - "analytics" | |
| # - "crashlytics" | |
| # - "performance-monitoring" | |
| # - "test-lab" | |
| # - "cloud-messaging" | |
| # - "dynamic-links" | |
| # - "identity-toolkit" | |
| # - "cloud-functions" | |
| # - "cloud-firestore" | |
| # - "cloud-storage" | |
| # - "cloud-hosting" | |
| # - "cloud-functions-v2" | |
| # - "cloud-firestore-v2" | |
| # - "cloud-storage-v2" | |
| # - "cloud-hosting-v2" | |
| # - "cloud-functions-v3" | |
| # - "cloud-firestore-v3" | |
| # - "cloud-storage-v3" | |
| # - "cloud-hosting-v3" | |
| if not firebase_key_regex.match(inStr) or inStr in ['firebase', 'google', 'android', 'ios', 'web', 'console', 'auth', 'database', 'storage', 'hosting', 'functions', 'firestore', 'realtime-database', 'remote-config', 'analytics', 'crashlytics', 'performance-monitoring', 'test-lab', 'cloud-messaging', 'dynamic-links', 'identity-toolkit', 'cloud-functions', 'cloud-firestore', 'cloud-storage', 'cloud-hosting', 'cloud-functions-v2', 'cloud-firestore-v2', 'cloud-storage-v2', 'cloud-hosting-v2', 'cloud-functions-v3', 'cloud-firestore-v3', 'cloud-storage-v3', 'cloud-hosting-v3']: | |
| return "fb_"+outStr | |
| if len(outStr) > 120: | |
| outStr = "fbx_"+outStr[:120] | |
| return outStr | |