diff --git a/config.py b/config.py index 9702bcf..7077536 100644 --- a/config.py +++ b/config.py @@ -44,6 +44,7 @@ class project(enum.Enum): find_master = 'find_master' find_it = 'find_it' find_object = 'find_object' + food_sort = 'food_sort' # endregion @@ -61,6 +62,8 @@ def get_firebase_instance(project_id) -> FirebaseHelper: return firebase_helper.get_firebase_find_it() elif project_id == project.find_object.value: return firebase_helper.get_firebase_find_object() + elif project_id == project.food_sort.value: + return firebase_helper.get_firebase_food_sort() else: return None # endregion @@ -89,5 +92,7 @@ def get_project_cdn(project_id): return 'https://cdn3-find-it.fungame.cloud' elif project_id == project.find_object.value: return 'https://cdn3-find-object.fungame.cloud' + elif project_id == project.food_sort.value: + return 'https://cdn3-food-sort.fungame.cloud' else: return None \ No newline at end of file diff --git a/firebase_tools/firebase_helper.py b/firebase_tools/firebase_helper.py index ef7bf9b..759f339 100644 --- a/firebase_tools/firebase_helper.py +++ b/firebase_tools/firebase_helper.py @@ -23,6 +23,7 @@ FindOut_GOOGLE_SERVER_FILE = os.path.join(curr_dir, "dof2-b9070.json") FindMaster_GOOGLE_SERVER_FILE = os.path.join(curr_dir, "find-master-387702.json") FindIt_GOOGLE_SERVER_FILE = os.path.join(curr_dir, "find-it-a08e5.json") FindObject_GOOGLE_SERVER_FILE = os.path.join(curr_dir, "find-object-a08e5-f833603c7dd7.json") +FoodSort_GOOGLE_SERVER_FILE = os.path.join(curr_dir, "food-sort-387702-712f402473f6.json") DOF_PROJECT_ID = "find-differences-65e47" D2_PROJECT_ID = "dof2-b9070" @@ -30,6 +31,7 @@ FindOut_PROJECT_ID = "dof2-b9070" FindMaster_PROJECT_ID = "find-master-88ffb" FindIt_PROJECT_ID = "find-it-a08e5" FindObject_PROJECT_ID = "find-object-45a0d" +FoodSort_PROJECT_ID = "food-sort-1703a" BASE_URL = "https://firebaseremoteconfig.googleapis.com" @@ -56,6 +58,7 @@ class FirebaseHelperInstance(Singleton): self.firebase_find_master = None self.firebase_find_it = None self.firebase_find_object = None + self.firebase_food_sort = None def get_firebase_dof(self): if self.firebase_dof is None: @@ -85,7 +88,10 @@ class FirebaseHelperInstance(Singleton): if self.firebase_find_object is None: self.firebase_find_object = FirebaseHelper(FindObject_PROJECT_ID, FindObject_GOOGLE_SERVER_FILE) return self.firebase_find_object - + def get_firebase_food_sort(self): + if self.firebase_food_sort is None: + self.firebase_food_sort = FirebaseHelper(FindObject_PROJECT_ID, FindObject_GOOGLE_SERVER_FILE) + return self.firebase_food_sort class FirebaseHelper: def __init__(self, project_id, google_service_file): @@ -105,6 +111,8 @@ class FirebaseHelper: def init_firebase(self, project_id): storage_bucket = "gs://" + project_id + ".appspot.com" + if project_id == FoodSort_PROJECT_ID: + storage_bucket = "gs://" + project_id + ".firebasestorage.app" databaseURL = "https://" + project_id + ".firebaseio.com/" cred = credentials.Certificate(self.GOOGLE_SERVER_FILE) self.firebase_app = firebase_admin.initialize_app(cred, { @@ -116,7 +124,11 @@ class FirebaseHelper: print("初始 firebase 成功") def init_storage(self, project_id): - bucket = project_id + ".appspot.com" + bucket = '' + if project_id == FoodSort_PROJECT_ID: + bucket = project_id + ".firebasestorage.app" + else: + bucket = project_id + ".appspot.com" if self.firebase_app: self.storage_instance = storage.bucket(name=bucket, app=self.firebase_app) print("初始 storage 成功") diff --git a/firebase_tools/food-sort-387702-712f402473f6.json b/firebase_tools/food-sort-387702-712f402473f6.json new file mode 100644 index 0000000..46bf361 --- /dev/null +++ b/firebase_tools/food-sort-387702-712f402473f6.json @@ -0,0 +1,13 @@ +{ + "type": "service_account", + "project_id": "infra-387702", + "private_key_id": "712f402473f6cba20985e7f14427759d00476326", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDCNJUOoZM5MDIA\n/yeyEiuHmkX4FEg/RTXIkyJrfVSdnlFYXpIzizyL6lMCjRcFpP3P9t62kvD8pkhI\nK9KJdLYOt5+gXaX+hwbytbNU22ZifRyB59DiZCncTKaRP5uFbPgXpbmZjFG3kohm\nu3KTADQs+sSktAsVy2nnha0xP40dgtCqGRuIXr2cxTwyLQ4OfebPuVM1uz8Hp3nv\nBwSwjzXye5jyGS8UgsUjv+RuHA4q1NZ8xgmtz5d3NEaO1eyNpvrB+DABcCjAX7B/\n0db/kYqlPGKpq3tIKTvhY9dz/oDdSvAOMgT5ZBbuhTNYD+1qbpHvnQ3AbS6e1BRL\nj51kg6RfAgMBAAECggEAHTWNabrxirtt+epmjQjglS+l8G8UgrelJDrFBYe/L0m9\nkF4A/VGm1KB0xcB0wvuS1TGbQ7iMGGPmITy+GMB+FW6WyqbrLYIfkGe1xkCNgKiy\nnfNA3pwUE7dPoi7/9Cx0kBHz/V02eTbH3zO4QtXYAx/gbalKtYd3sUPQzcRyNArS\niJJhRrLek+3nQp7EIVhoFsjOYKs9tZty4IUShS02FvyarAWCCKcwmtmpCE8bTMK5\nvpARh7r8q9HffhUos/n7oZLQbpDVb5jmWevJPQSRYBmNFCK8bsipJIE70CxPAuTy\nAFqAOq7GgYWf4XOLaWH6eIEA2Lx7FVmVx77yy1K3YQKBgQDyz0Yo+03Jh4n29Rkq\n+yQIvM0tBBajHp7bW9PsAuKedJ2DK48meaqJihX5B48VUQW2yhaddJbsgQ3wQDSd\nsQEw4nw8nIz9AedcsgkJsB837lxDeVXd+WOOUPXJHfEprnIzJ4/pKCjCu9Ecno4r\ne6xVogOHFEzcDFwENvo20flf0QKBgQDMwV/R+xptAs4o4+Qod99Su4FnDuCRMCOk\noIzaPJoKkNWnOZ0fA5TbOCkGzRurRxiVcd2STYR+bPRpeaXVKAz7q/IEPVoeq1IF\nWVM5sazng1mjKFcN2q15fLvbp8fqC8KqOD+O3aVdfPPJQABsb8zp4iTNMQNry3V2\nWN6S81J9LwKBgF2OiBYaXqqcUwiZAA2TnxrOxK/nt2E61zLmew2hPviXLmnwSsQk\ndRVx422FABjSk0UPMQ+ScOTIBTrhQmTQYwkW+4/PMnP6W89XuivFdQH0EhDdm7xf\n74BSqaHIq7fHw7D6OXU5SBtgiv5gCZ+vk4ObXYiaxdKz4HCvTlH5LgFBAoGAH+Oy\nJ8MC/51jPG0Z2M+qoXkAk2t2wEYOFxLGPSsZFrIuBGhttynYojfh8+Q3/foJsyTT\nzHh0PTh87Hx8vnEJbJ0ACXcAtSwbjye1VZP9iOUlLcsXm9nGENjDbVd5RFNmkxpF\nk9ujaKcQVPS53CmhcX++GZMbpEtA1RjMOXjaDRMCgYEAwoR2VXzC5nmi7jImuIXj\nSoB9z3fotkROgMoBRRrPiN6UIyfMm9xAUJCTInmVdmpnIJFbKir4Iv3nuu3gUzfs\nuYxG6GtESfGEtvCSLx8HO/BH9zSqeXLxLLXXmTgIRr8MGYex3kCbIjGhn+n7HPSr\nURTUl0awSpo8dkHE+8ZVbDs=\n-----END PRIVATE KEY-----\n", + "client_email": "food-sort-remoteconfig@infra-387702.iam.gserviceaccount.com", + "client_id": "111617096795205926162", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/food-sort-remoteconfig%40infra-387702.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" +}