diff --git a/.gitignore b/.gitignore index 6052cac..f44dbbc 100644 --- a/.gitignore +++ b/.gitignore @@ -52,7 +52,7 @@ local.properties *.hprof .cxx/ - +firebase-debug.log # node.js # node_modules/ diff --git a/firebase-debug.log b/firebase-debug.log deleted file mode 100644 index 4b6cacd..0000000 --- a/firebase-debug.log +++ /dev/null @@ -1,118 +0,0 @@ -[debug] [2025-10-08T07:48:24.045Z] ---------------------------------------------------------------------- -[debug] [2025-10-08T07:48:24.046Z] Command: /usr/local/bin/firebase /home/leon/.cache/firebase/tools/lib/node_modules/firebase-tools/lib/bin/firebase deploy --only functions:notifications -[debug] [2025-10-08T07:48:24.047Z] CLI Version: 14.2.1 -[debug] [2025-10-08T07:48:24.047Z] Platform: linux -[debug] [2025-10-08T07:48:24.047Z] Node Version: v20.18.2 -[debug] [2025-10-08T07:48:24.047Z] Time: Wed Oct 08 2025 09:48:24 GMT+0200 (GMT+02:00) -[debug] [2025-10-08T07:48:24.047Z] ---------------------------------------------------------------------- -[debug] -[debug] [2025-10-08T07:48:24.184Z] Object "" in "firebase.json" has unknown property: {"additionalProperty":"react-native"} -[debug] [2025-10-08T07:48:24.187Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] -[debug] [2025-10-08T07:48:24.187Z] > authorizing via signed-in user (leon.morival@gmail.com) -[debug] [2025-10-08T07:48:24.187Z] [iam] checking project musicland-d33f9 for permissions ["cloudfunctions.functions.create","cloudfunctions.functions.delete","cloudfunctions.functions.get","cloudfunctions.functions.list","cloudfunctions.functions.update","cloudfunctions.operations.get","firebase.projects.get"] -[debug] [2025-10-08T07:48:24.188Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:24.188Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:24.189Z] >>> [apiv2][query] POST https://cloudresourcemanager.googleapis.com/v1/projects/musicland-d33f9:testIamPermissions [none] -[debug] [2025-10-08T07:48:24.189Z] >>> [apiv2][(partial)header] POST https://cloudresourcemanager.googleapis.com/v1/projects/musicland-d33f9:testIamPermissions x-goog-quota-user=projects/musicland-d33f9 -[debug] [2025-10-08T07:48:24.189Z] >>> [apiv2][body] POST https://cloudresourcemanager.googleapis.com/v1/projects/musicland-d33f9:testIamPermissions {"permissions":["cloudfunctions.functions.create","cloudfunctions.functions.delete","cloudfunctions.functions.get","cloudfunctions.functions.list","cloudfunctions.functions.update","cloudfunctions.operations.get","firebase.projects.get"]} -[debug] [2025-10-08T07:48:24.930Z] <<< [apiv2][status] POST https://cloudresourcemanager.googleapis.com/v1/projects/musicland-d33f9:testIamPermissions 200 -[debug] [2025-10-08T07:48:24.930Z] <<< [apiv2][body] POST https://cloudresourcemanager.googleapis.com/v1/projects/musicland-d33f9:testIamPermissions {"permissions":["cloudfunctions.functions.create","cloudfunctions.functions.delete","cloudfunctions.functions.get","cloudfunctions.functions.list","cloudfunctions.functions.update","cloudfunctions.operations.get","firebase.projects.get"]} -[debug] [2025-10-08T07:48:24.931Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:24.931Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:24.931Z] >>> [apiv2][query] POST https://iam.googleapis.com/v1/projects/musicland-d33f9/serviceAccounts/musicland-d33f9@appspot.gserviceaccount.com:testIamPermissions [none] -[debug] [2025-10-08T07:48:24.931Z] >>> [apiv2][body] POST https://iam.googleapis.com/v1/projects/musicland-d33f9/serviceAccounts/musicland-d33f9@appspot.gserviceaccount.com:testIamPermissions {"permissions":["iam.serviceAccounts.actAs"]} -[debug] [2025-10-08T07:48:25.715Z] <<< [apiv2][status] POST https://iam.googleapis.com/v1/projects/musicland-d33f9/serviceAccounts/musicland-d33f9@appspot.gserviceaccount.com:testIamPermissions 404 -[debug] [2025-10-08T07:48:25.716Z] <<< [apiv2][body] POST https://iam.googleapis.com/v1/projects/musicland-d33f9/serviceAccounts/musicland-d33f9@appspot.gserviceaccount.com:testIamPermissions {"error":{"code":404,"message":"Unknown service account","status":"NOT_FOUND"}} -[debug] [2025-10-08T07:48:25.716Z] [functions] service account IAM check errored, deploy may fail: Request to https://iam.googleapis.com/v1/projects/musicland-d33f9/serviceAccounts/musicland-d33f9@appspot.gserviceaccount.com:testIamPermissions had HTTP Error: 404, Unknown service account {"name":"FirebaseError","children":[],"context":{"body":{"error":{"code":404,"message":"Unknown service account","status":"NOT_FOUND"}},"response":{"statusCode":404}},"exit":1,"message":"Request to https://iam.googleapis.com/v1/projects/musicland-d33f9/serviceAccounts/musicland-d33f9@appspot.gserviceaccount.com:testIamPermissions had HTTP Error: 404, Unknown service account","status":404} -[info] -[info] === Deploying to 'musicland-d33f9'... -[info] -[info] i deploying functions -[info] ✔ functions: Finished running predeploy script. -[debug] [2025-10-08T07:48:25.718Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:25.718Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:25.718Z] >>> [apiv2][query] GET https://cloudresourcemanager.googleapis.com/v1/projects/musicland-d33f9 [none] -[debug] [2025-10-08T07:48:25.938Z] <<< [apiv2][status] GET https://cloudresourcemanager.googleapis.com/v1/projects/musicland-d33f9 200 -[debug] [2025-10-08T07:48:25.938Z] <<< [apiv2][body] GET https://cloudresourcemanager.googleapis.com/v1/projects/musicland-d33f9 {"projectNumber":"305598753437","projectId":"musicland-d33f9","lifecycleState":"ACTIVE","name":"MusicLand","labels":{"firebase":"enabled","firebase-core":"disabled","generative-language":"enabled"},"createTime":"2025-08-01T09:52:18.735180Z"} -[info] i functions: preparing codebase default for deployment -[info] i functions: ensuring required API cloudfunctions.googleapis.com is enabled... -[debug] [2025-10-08T07:48:25.939Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:25.939Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:25.939Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:25.939Z] Checked if tokens are valid: true, expires at: 1759912729066 -[info] i functions: ensuring required API cloudbuild.googleapis.com is enabled... -[debug] [2025-10-08T07:48:25.939Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:25.939Z] Checked if tokens are valid: true, expires at: 1759912729066 -[info] i artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled... -[debug] [2025-10-08T07:48:25.939Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:25.939Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:25.939Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/cloudfunctions.googleapis.com [none] -[debug] [2025-10-08T07:48:25.939Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/cloudfunctions.googleapis.com x-goog-quota-user=projects/musicland-d33f9 -[debug] [2025-10-08T07:48:25.940Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/runtimeconfig.googleapis.com [none] -[debug] [2025-10-08T07:48:25.940Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/runtimeconfig.googleapis.com x-goog-quota-user=projects/musicland-d33f9 -[debug] [2025-10-08T07:48:25.941Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/cloudbuild.googleapis.com [none] -[debug] [2025-10-08T07:48:25.941Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/cloudbuild.googleapis.com x-goog-quota-user=projects/musicland-d33f9 -[debug] [2025-10-08T07:48:25.942Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/artifactregistry.googleapis.com [none] -[debug] [2025-10-08T07:48:25.942Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/artifactregistry.googleapis.com x-goog-quota-user=projects/musicland-d33f9 -[debug] [2025-10-08T07:48:26.526Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/cloudbuild.googleapis.com 200 -[debug] [2025-10-08T07:48:26.526Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/cloudbuild.googleapis.com [omitted] -[info] ✔ functions: required API cloudbuild.googleapis.com is enabled -[debug] [2025-10-08T07:48:26.882Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/runtimeconfig.googleapis.com 200 -[debug] [2025-10-08T07:48:26.882Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/runtimeconfig.googleapis.com [omitted] -[debug] [2025-10-08T07:48:26.892Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/cloudfunctions.googleapis.com 200 -[debug] [2025-10-08T07:48:26.892Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/cloudfunctions.googleapis.com [omitted] -[info] ✔ functions: required API cloudfunctions.googleapis.com is enabled -[debug] [2025-10-08T07:48:26.903Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/artifactregistry.googleapis.com 200 -[debug] [2025-10-08T07:48:26.904Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/musicland-d33f9/services/artifactregistry.googleapis.com [omitted] -[info] ✔ artifactregistry: required API artifactregistry.googleapis.com is enabled -[debug] [2025-10-08T07:48:26.904Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:26.904Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:26.904Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects/musicland-d33f9/adminSdkConfig [none] -[debug] [2025-10-08T07:48:27.341Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects/musicland-d33f9/adminSdkConfig 200 -[debug] [2025-10-08T07:48:27.342Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects/musicland-d33f9/adminSdkConfig {"projectId":"musicland-d33f9","storageBucket":"musicland-d33f9.firebasestorage.app"} -[debug] [2025-10-08T07:48:27.342Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:27.342Z] Checked if tokens are valid: true, expires at: 1759912729066 -[debug] [2025-10-08T07:48:27.342Z] >>> [apiv2][query] GET https://runtimeconfig.googleapis.com/v1beta1/projects/musicland-d33f9/configs [none] -[debug] [2025-10-08T07:48:28.171Z] <<< [apiv2][status] GET https://runtimeconfig.googleapis.com/v1beta1/projects/musicland-d33f9/configs 200 -[debug] [2025-10-08T07:48:28.171Z] <<< [apiv2][body] GET https://runtimeconfig.googleapis.com/v1beta1/projects/musicland-d33f9/configs {} -[debug] [2025-10-08T07:48:28.171Z] Validating nodejs source -[debug] [2025-10-08T07:48:28.579Z] > [functions] package.json contents: { - "name": "functions", - "description": "Cloud Functions for Firebase", - "scripts": { - "lint": "eslint .", - "serve": "firebase emulators:start --only functions", - "shell": "firebase functions:shell", - "start": "npm run shell", - "deploy": "firebase deploy --only functions", - "logs": "firebase functions:log" - }, - "engines": { - "node": "20" - }, - "main": "index.js", - "dependencies": { - "@ffmpeg-installer/ffmpeg": "^1.1.0", - "@genkit-ai/googleai": "^1.18.0", - "@google-cloud/storage": "^7.17.1", - "axios": "^1.11.0", - "expo-server-sdk": "^4.0.0", - "ffmpeg-static": "^5.2.0", - "firebase-admin": "^12.7.0", - "firebase-functions": "^6.4.0", - "fluent-ffmpeg": "^2.1.3", - "genkit": "^1.18.0" - }, - "devDependencies": { - "eslint": "^8.15.0", - "eslint-config-google": "^0.14.0" - }, - "private": true -} -[debug] [2025-10-08T07:48:28.579Z] Building nodejs source -[info] i functions: Loading and analyzing source code for codebase default to determine what to deploy -[debug] [2025-10-08T07:48:28.580Z] Could not find functions.yaml. Must use http discovery -[debug] [2025-10-08T07:48:28.583Z] Found firebase-functions binary at '/home/leon/Workspace/minuit/musicland/functions/node_modules/.bin/firebase-functions' -[info] Serving at port 8643 - -[debug] [2025-10-08T07:48:29.182Z] Got response from /__/functions.yaml {"endpoints":{"users-onUserDelete":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","labels":{},"eventTrigger":{"eventType":"google.cloud.firestore.document.v1.deleted","eventFilters":{"database":"(default)","namespace":"(default)"},"eventFilterPathPatterns":{"document":"users/{userID}"},"retry":false},"entryPoint":"users.onUserDelete"},"music-generateMusic":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","labels":{},"callableTrigger":{},"entryPoint":"music.generateMusic"},"music-getSunoStatus":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","labels":{},"callableTrigger":{},"entryPoint":"music.getSunoStatus"},"music-sunoCallback":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","labels":{},"httpsTrigger":{},"entryPoint":"music.sunoCallback"},"lyrics-generateLyrics":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","labels":{},"callableTrigger":{},"entryPoint":"lyrics.generateLyrics"},"lyrics-analyseLyricsToxicity":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","labels":{},"callableTrigger":{},"entryPoint":"lyrics.analyseLyricsToxicity"},"cover-onTaskCreateGenerateCover":{"availableMemoryMb":1024,"timeoutSeconds":540,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","labels":{},"eventTrigger":{"eventType":"google.cloud.firestore.document.v1.created","eventFilters":{"database":"(default)","namespace":"(default)"},"eventFilterPathPatterns":{"document":"tasks/{taskId}"},"retry":false},"entryPoint":"cover.onTaskCreateGenerateCover"},"projects-onProjectUpdate":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","labels":{},"eventTrigger":{"eventType":"google.cloud.firestore.document.v1.written","eventFilters":{"database":"(default)","namespace":"(default)"},"eventFilterPathPatterns":{"document":"projects/{projectId}"},"retry":false},"entryPoint":"projects.onProjectUpdate"},"thumbnail-generateVideoThumbnail":{"platform":"gcfv2","availableMemoryMb":1024,"timeoutSeconds":180,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"cpu":1,"region":["europe-west1"],"labels":{},"eventTrigger":{"eventType":"google.cloud.storage.object.v1.finalized","eventFilters":{"bucket":"musicland-d33f9.firebasestorage.app"},"retry":false},"entryPoint":"thumbnail.generateVideoThumbnail"},"upload-uploadProjectMedia":{"availableMemoryMb":2048,"timeoutSeconds":540,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","labels":{},"callableTrigger":{},"entryPoint":"upload.uploadProjectMedia"},"algolia-algoliaTransformProjectData":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","region":["europe-west1"],"labels":{},"httpsTrigger":{},"entryPoint":"algolia.algoliaTransformProjectData"},"notifications-sendNotificationWhenDocIsCreated":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","region":["europe-west1"],"labels":{},"eventTrigger":{"eventType":"google.cloud.firestore.document.v1.created","eventFilters":{"database":"(default)","namespace":"(default)"},"eventFilterPathPatterns":{"document":"notifications/{notificationId}"},"retry":false},"entryPoint":"notifications.sendNotificationWhenDocIsCreated"},"notifications-createProjectCommentNotification":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","region":["europe-west1"],"labels":{},"eventTrigger":{"eventType":"google.cloud.firestore.document.v1.created","eventFilters":{"database":"(default)","namespace":"(default)"},"eventFilterPathPatterns":{"document":"projects/{projectId}/comments/{commentId}"},"retry":false},"entryPoint":"notifications.createProjectCommentNotification"},"notifications-createProjectLikeNotification":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","region":["europe-west1"],"labels":{},"eventTrigger":{"eventType":"google.cloud.firestore.document.v1.written","eventFilters":{"database":"(default)","namespace":"(default)"},"eventFilterPathPatterns":{"document":"projects/{projectId}"},"retry":false},"entryPoint":"notifications.createProjectLikeNotification"},"notifications-createNewFollowerNotification":{"availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"concurrency":null,"serviceAccountEmail":null,"vpc":null,"platform":"gcfv2","region":["europe-west1"],"labels":{},"eventTrigger":{"eventType":"google.cloud.firestore.document.v1.written","eventFilters":{"database":"(default)","namespace":"(default)"},"eventFilterPathPatterns":{"document":"users/{userId}"},"retry":false},"entryPoint":"notifications.createNewFollowerNotification"}},"specVersion":"v1alpha1","requiredAPIs":[],"extensions":{}} diff --git a/src/assets/UI/hitParadeBG2.jpeg b/src/assets/UI/hitParadeBG2.jpeg new file mode 100644 index 0000000..1010fa6 Binary files /dev/null and b/src/assets/UI/hitParadeBG2.jpeg differ diff --git a/src/assets/UI/profileWebBG.jpeg b/src/assets/UI/profileWebBG.jpeg new file mode 100644 index 0000000..c5318a7 Binary files /dev/null and b/src/assets/UI/profileWebBG.jpeg differ diff --git a/src/assets/index.js b/src/assets/index.js index 0f554ce..2bdf3e2 100644 --- a/src/assets/index.js +++ b/src/assets/index.js @@ -105,13 +105,13 @@ import john from "./UI/john.png"; import nathalie from "./UI/nathalie.png"; import theo from "./UI/theo.png"; +import { Platform } from "react-native"; import goodVibe from "./UI/goodVibe.png"; import placeholder from "./UI/placeholder.jpg"; import placeholder2 from "./UI/placeholder2.jpg"; import placeholder3 from "./UI/placeholder3.png"; import placeholder4 from "./UI/placeholder4.jpg"; import profile from "./UI/profile.jpg"; -import { Platform } from "react-native"; export const tabs = { home, @@ -224,9 +224,11 @@ export const background = { profileBG, profileBgWeb: require("./UI/profileBgWeb.png"), hitParadeBG, + hitParadeBG2: require("./UI/hitParadeBG2.jpeg"), homeBG, homeBGWeb: require("./UI/homeBGWeb.png"), loginBgWeb: require("./UI/loginBgWeb.png"), + profileWebBG: require("./UI/profileWebBG.jpeg"), }; export const ai = { diff --git a/src/screens/HitParade/HitParade.js b/src/screens/HitParade/HitParade.js index 7a7c94d..1abe95c 100644 --- a/src/screens/HitParade/HitParade.js +++ b/src/screens/HitParade/HitParade.js @@ -210,11 +210,11 @@ const HitParade = () => { return ( diff --git a/src/screens/Profile/Profile.js b/src/screens/Profile/Profile.js index ade1b3c..738c4fd 100644 --- a/src/screens/Profile/Profile.js +++ b/src/screens/Profile/Profile.js @@ -300,7 +300,7 @@ const Profile = () => { return ( { )} - - - + +