From cbb9a1a587dad7b237d78219103fee7b44d09190 Mon Sep 17 00:00:00 2001
From: Patel Khushi Sanjivbhai
<155909246+Khushi130404@users.noreply.github.com>
Date: Wed, 30 Oct 2024 14:54:04 +0530
Subject: [PATCH 1/4] imageUrl->User
---
src/models/User.js | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/models/User.js b/src/models/User.js
index d1a8446..f23e0f9 100644
--- a/src/models/User.js
+++ b/src/models/User.js
@@ -3,7 +3,15 @@ import { realDb } from "../firebase";
import { Streak } from "./Streak";
export class User {
- constructor(userId, username, password, birthdate, country, email) {
+ constructor(
+ userId,
+ username,
+ password,
+ birthdate,
+ country,
+ email,
+ imageUrl = null
+ ) {
this.userId = userId;
this.username = username;
this.password = password;
@@ -12,6 +20,7 @@ export class User {
this.email = email;
this.tasks = {};
this.streak = new Streak();
+ this.imageUrl = imageUrl;
}
save() {
@@ -24,6 +33,7 @@ export class User {
email: this.email,
tasks: this.tasks,
streak: this.streak.getDates(),
+ imageUrl: this.imageUrl,
});
}
@@ -73,7 +83,8 @@ export class User {
data.password,
data.birthdate,
data.country,
- data.email
+ data.email,
+ data.imageUrl || null
);
user.tasks = data.tasks || {};
user.streak = new Streak();
From 55c09bc7418fc7d3d3622c0bab611c96f26f25f4 Mon Sep 17 00:00:00 2001
From: Patel Khushi Sanjivbhai
<155909246+Khushi130404@users.noreply.github.com>
Date: Wed, 30 Oct 2024 15:16:48 +0530
Subject: [PATCH 2/4] Registration-image
---
src/Components/Registration.js | 171 +++++++++++++++++++++++++--------
src/firebase.js | 6 +-
2 files changed, 134 insertions(+), 43 deletions(-)
diff --git a/src/Components/Registration.js b/src/Components/Registration.js
index 7d0497b..490d334 100644
--- a/src/Components/Registration.js
+++ b/src/Components/Registration.js
@@ -4,6 +4,9 @@ import { auth } from "../firebase";
import { createUserInFirebase } from "../FirebaseOperations";
import { useNavigate } from "react-router-dom";
import { User } from "../models/User";
+import { getStorage, ref, uploadBytes, getDownloadURL } from "firebase/storage";
+
+const storage = getStorage();
const Registration = () => {
const navigate = useNavigate();
@@ -15,6 +18,8 @@ const Registration = () => {
const [userId, setUserId] = useState(null);
const [showPassword, setShowPassword] = useState(false);
const [error, setError] = useState("");
+ const [profileImage, setProfileImage] = useState(null);
+ const [profileImageUrl, setProfileImageUrl] = useState("");
const formatDate = (dateString) => {
const date = new Date(dateString);
@@ -24,6 +29,17 @@ const Registration = () => {
return `${day}-${month}-${year}`;
};
+ const handleImageUpload = (e) => {
+ const file = e.target.files[0];
+ setProfileImage(file);
+
+ const reader = new FileReader();
+ reader.onloadend = () => {
+ setProfileImageUrl(reader.result);
+ };
+ if (file) reader.readAsDataURL(file);
+ };
+
const handleSubmit = (e) => {
e.preventDefault();
setError("");
@@ -42,18 +58,38 @@ const Registration = () => {
email
);
- createUserInFirebase(newUser)
- .then((generatedUserId) => {
- setUserId(generatedUserId);
- localStorage.setItem("userId", generatedUserId);
- navigate("/Login");
- })
- .catch((error) => {
- setError("Error saving user data. Please try again.");
+ if (profileImage) {
+ const storageRef = ref(storage, `userProfiles/${user.uid}`);
+ uploadBytes(storageRef, profileImage).then(() => {
+ getDownloadURL(storageRef).then((url) => {
+ newUser.imageUrl = url;
+ createUserInFirebase(newUser)
+ .then((generatedUserId) => {
+ setUserId(generatedUserId);
+ localStorage.setItem("userId", generatedUserId);
+ navigate("/Login");
+ })
+ .catch((error) => {
+ setError("Error saving user data. Please try again.");
+ });
+ });
});
+ } else {
+ createUserInFirebase(newUser)
+ .then((generatedUserId) => {
+ setUserId(generatedUserId);
+ localStorage.setItem("userId", generatedUserId);
+ navigate("/Login");
+ })
+ .catch((error) => {
+ setError("Error saving user data. Please try again.");
+ });
+ }
})
.catch((error) => {
- setError("Error creating account. Please check your details and try again.");
+ setError(
+ "Error creating account. Please check your details and try again."
+ );
});
};
@@ -61,61 +97,116 @@ const Registration = () => {
navigate("/Login");
};
- const PasswordInput = () => {
- const [showPassword, setShowPassword] = useState(false);}
-
return (
-
{/* Left Section - Registration Form */}
-
Create Account
+
+ Create Account
+
+
+ {/* Image Preview */}
+ {profileImageUrl && (
+
+

+
+ )}
+
+
- Already have an account?{' '}
+ Already have an account?{" "}
@@ -138,11 +230,10 @@ const Registration = () => {
{/* Right Section - Illustration */}
Welcome!!
-
Ready to conquer your day?
-

+
+ Ready to conquer your day?
+
+
diff --git a/src/firebase.js b/src/firebase.js
index 21d4461..bdd0999 100644
--- a/src/firebase.js
+++ b/src/firebase.js
@@ -2,7 +2,7 @@
import { initializeApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";
import { getDatabase } from "firebase/database";
-import {getAuth} from "firebase/auth";
+import { getAuth } from "firebase/auth";
import { getStorage } from "firebase/storage";
import { getFirestore } from "firebase/firestore";
@@ -25,8 +25,8 @@ const firebaseConfig = {
const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
const realDb = getDatabase(app);
-const auth =getAuth();
+const auth = getAuth();
const storage = getStorage(app);
const firestore = getFirestore(app);
-export { app, analytics, realDb ,auth,storage,firestore};
+export { app, analytics, realDb, auth, storage, firestore };
From 80231a7c9ae7d460b2be33e3c83f0ce0e8fdba26 Mon Sep 17 00:00:00 2001
From: Patel Khushi Sanjivbhai
<155909246+Khushi130404@users.noreply.github.com>
Date: Wed, 30 Oct 2024 16:36:57 +0530
Subject: [PATCH 3/4] Add
---
package-lock.json | 501 ++++++++++++++++++---------------
package.json | 2 +-
src/Components/Registration.js | 4 +-
src/FirebaseOperations.js | 40 ++-
4 files changed, 305 insertions(+), 242 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 434ed50..977dc69 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,7 +11,7 @@
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
- "firebase": "^10.13.1",
+ "firebase": "^11.0.1",
"lucide-react": "^0.453.0",
"react": "^18.3.1",
"react-circular-progressbar": "^2.1.0",
@@ -2550,15 +2550,15 @@
}
},
"node_modules/@firebase/analytics": {
- "version": "0.10.7",
- "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.7.tgz",
- "integrity": "sha512-GE29uTT6y/Jv2EP0OjpTezeTQZ5FTCTaZXKrrdVGjb/t35AU4u/jiU+hUwUPpuK8fqhhiHkS/AawE3a3ZK/a9Q==",
+ "version": "0.10.9",
+ "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.9.tgz",
+ "integrity": "sha512-FrvW6u6xDBKXUGYUy1WIUh0J9tvbppMsk90mig0JhHST8iLveKu/dIBVeVE/ZYZhmXy4fkI7SPSWvD1V0O4tXw==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/installations": "0.6.8",
- "@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.7",
+ "@firebase/component": "0.6.10",
+ "@firebase/installations": "0.6.10",
+ "@firebase/logger": "0.4.3",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2566,15 +2566,15 @@
}
},
"node_modules/@firebase/analytics-compat": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.13.tgz",
- "integrity": "sha512-aZ4wGfNDMsCxhKzDbK2g1aV0JKsdQ9FbeIsjpNJPzhahV0XYj+z36Y4RNLPpG/6hHU4gxnezxs+yn3HhHkNL8w==",
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.15.tgz",
+ "integrity": "sha512-C5to422Sr8FkL0MPwXcIecbMnF4o2Ll7MtoWvIm4Q/LPJvvM+tWa1DiU+LzsCdsd1/CYE9EIW9Ma3ko9XnAAYw==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/analytics": "0.10.7",
+ "@firebase/analytics": "0.10.9",
"@firebase/analytics-types": "0.8.2",
- "@firebase/component": "0.6.8",
- "@firebase/util": "1.9.7",
+ "@firebase/component": "0.6.10",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2588,46 +2588,55 @@
"license": "Apache-2.0"
},
"node_modules/@firebase/app": {
- "version": "0.10.10",
- "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.10.10.tgz",
- "integrity": "sha512-sDqkdeFdVn5uygQm5EuIKOQ6/wxTcX/qKfm0MR46AiwLRHGLCDUMrXBkc8GhkK3ca2d6mPUSfPmndggo43D6PQ==",
+ "version": "0.10.15",
+ "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.10.15.tgz",
+ "integrity": "sha512-he6qlG3pmwL+LHdG/BrSMBQeJzzutciq4fpXN3lGa1uSwYSijJ24VtakS/bP2X9SiDf8jGywJ4u+OgXAenJsNg==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.7",
+ "@firebase/component": "0.6.10",
+ "@firebase/logger": "0.4.3",
+ "@firebase/util": "1.10.1",
"idb": "7.1.1",
"tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@firebase/app-check": {
- "version": "0.8.7",
- "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.7.tgz",
- "integrity": "sha512-EkOeJcMKVR0zZ6z/jqcFTqHb/xq+TVIRIuBNGHdpcIuFU1czhSlegvqv2+nC+nFrkD8M6Xvd3tAlUOkdbMeS6A==",
+ "version": "0.8.9",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.9.tgz",
+ "integrity": "sha512-YzVn1mMLzD2JboMPVVO0Pe20YOgWzrF+aXoAmmd0v3xec051n83YpxSUZbacL69uYvk0dHrEsbea44QtQ5WPDA==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.7",
+ "@firebase/component": "0.6.10",
+ "@firebase/logger": "0.4.3",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
},
+ "engines": {
+ "node": ">=18.0.0"
+ },
"peerDependencies": {
"@firebase/app": "0.x"
}
},
"node_modules/@firebase/app-check-compat": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.14.tgz",
- "integrity": "sha512-kK3bPfojAfXE53W+20rxMqIxrloFswXG9vh4kEdYL6Wa2IB3sD5++2dPiK3yGxl8oQiqS8qL2wcKB5/xLpEVEg==",
+ "version": "0.3.16",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.16.tgz",
+ "integrity": "sha512-AxIGzLRXrTFNL+H6V+4BO0w/gERloROfRbWI/FoJUnQd0qPZIzyfdHZBbThFzFGLfDt/mVs2kdjYFx/l9I8NhQ==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/app-check": "0.8.7",
+ "@firebase/app-check": "0.8.9",
"@firebase/app-check-types": "0.5.2",
- "@firebase/component": "0.6.8",
- "@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.7",
+ "@firebase/component": "0.6.10",
+ "@firebase/logger": "0.4.3",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
},
+ "engines": {
+ "node": ">=18.0.0"
+ },
"peerDependencies": {
"@firebase/app-compat": "0.x"
}
@@ -2645,16 +2654,19 @@
"license": "Apache-2.0"
},
"node_modules/@firebase/app-compat": {
- "version": "0.2.40",
- "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.40.tgz",
- "integrity": "sha512-2L5MW4MH2ya7Wvw0hzWy3ZWeB4SqC5gYXDAV5AS1lBTL4zL3k8dsqJmry/cFV00GgkCI01WJbcXvFMCXJvgyow==",
+ "version": "0.2.45",
+ "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.45.tgz",
+ "integrity": "sha512-5rYbXq1ndtMTg+07oH4WrkYuP+NZq61uzVwW1hlmybp/gr4cXq2SfaP9fc6/9IzTKmu3dh3H0fjj++HG7Z7o/w==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/app": "0.10.10",
- "@firebase/component": "0.6.8",
- "@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.7",
+ "@firebase/app": "0.10.15",
+ "@firebase/component": "0.6.10",
+ "@firebase/logger": "0.4.3",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@firebase/app-types": {
@@ -2664,16 +2676,18 @@
"license": "Apache-2.0"
},
"node_modules/@firebase/auth": {
- "version": "1.7.8",
- "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.7.8.tgz",
- "integrity": "sha512-1KJlDrTrEEFTIBj9MxjAWjQ4skecBD4bmoayQ0l14QDbNc1a8qGbi+MFSJkH7O6VnGE6bTMcWSw6RrQNecqKaw==",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.8.0.tgz",
+ "integrity": "sha512-/O7UDWE5S5ux456fzNHSLx/0YN/Kykw/WyAzgDQ6wvkddZhSEmPX19EzxgsFldzhuFjsl5uOZTz8kzlosCiJjg==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.7",
- "tslib": "^2.1.0",
- "undici": "6.19.7"
+ "@firebase/component": "0.6.10",
+ "@firebase/logger": "0.4.3",
+ "@firebase/util": "1.10.1",
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
},
"peerDependencies": {
"@firebase/app": "0.x",
@@ -2686,17 +2700,19 @@
}
},
"node_modules/@firebase/auth-compat": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.13.tgz",
- "integrity": "sha512-rV6TMxUU6wBBZ2ouDMtjJsJXeewtvYvVzslzt3/P7O/kxiWlreHT/2M/1guMiXKo3zk52XK3GqP0uM2bN7fEow==",
+ "version": "0.5.15",
+ "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.15.tgz",
+ "integrity": "sha512-jz6k1ridPiecKI8CBRiqCM6IMOhwYp2MD+YvoxnMiK8nQLSTm57GvHETlPNX3WlbyQnCjMCOvrAhe27whyxAEg==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/auth": "1.7.8",
+ "@firebase/auth": "1.8.0",
"@firebase/auth-types": "0.12.2",
- "@firebase/component": "0.6.8",
- "@firebase/util": "1.9.7",
- "tslib": "^2.1.0",
- "undici": "6.19.7"
+ "@firebase/component": "0.6.10",
+ "@firebase/util": "1.10.1",
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
},
"peerDependencies": {
"@firebase/app-compat": "0.x"
@@ -2719,88 +2735,115 @@
}
},
"node_modules/@firebase/component": {
- "version": "0.6.8",
- "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.8.tgz",
- "integrity": "sha512-LcNvxGLLGjBwB0dJUsBGCej2fqAepWyBubs4jt1Tiuns7QLbXHuyObZ4aMeBjZjWx4m8g1LoVI9QFpSaq/k4/g==",
+ "version": "0.6.10",
+ "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.10.tgz",
+ "integrity": "sha512-OsNbEKyz9iLZSmMUhsl6+kCADzte00iisJIRUspnUqvDCX+RSGZOBIqekukv/jN177ovjApBQNFaxSYIDc/SyQ==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/util": "1.9.7",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@firebase/data-connect": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@firebase/data-connect/-/data-connect-0.1.1.tgz",
+ "integrity": "sha512-RBJ7XE/a3oXFv31Jlw8cbMRdsxQoI8F3L7xm4n93ab+bIr1NQUiYGgW9L7TTw7obdNev91ZnW0xfqJtXcPA5yA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@firebase/auth-interop-types": "0.2.3",
+ "@firebase/component": "0.6.10",
+ "@firebase/logger": "0.4.3",
+ "@firebase/util": "1.10.1",
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@firebase/app": "0.x"
}
},
"node_modules/@firebase/database": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.7.tgz",
- "integrity": "sha512-wjXr5AO8RPxVVg7rRCYffT7FMtBjHRfJ9KMwi19MbOf0vBf0H9YqW3WCgcnLpXI6ehiUcU3z3qgPnnU0nK6SnA==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.9.tgz",
+ "integrity": "sha512-EkiPSKSu2TJJGtOjyISASf3UFpFJDil1lMbfqnxilfbmIsilvC8DzgjuLoYD+eOitcug4wtU9Fh1tt2vgBhskA==",
"license": "Apache-2.0",
"dependencies": {
"@firebase/app-check-interop-types": "0.3.2",
"@firebase/auth-interop-types": "0.2.3",
- "@firebase/component": "0.6.8",
- "@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.7",
+ "@firebase/component": "0.6.10",
+ "@firebase/logger": "0.4.3",
+ "@firebase/util": "1.10.1",
"faye-websocket": "0.11.4",
"tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@firebase/database-compat": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.7.tgz",
- "integrity": "sha512-R/3B+VVzEFN5YcHmfWns3eitA8fHLTL03io+FIoMcTYkajFnrBdS3A+g/KceN9omP7FYYYGTQWF9lvbEx6eMEg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.0.0.tgz",
+ "integrity": "sha512-2xlODKWwf/vNAxCmou0GFhymx2pqZKkhXMN9B5aiTjZ6+81sOxGim53ELY2lj+qKG2IvgiCYFc4X+ZJA2Ad5vg==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/database": "1.0.7",
- "@firebase/database-types": "1.0.4",
- "@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.7",
+ "@firebase/component": "0.6.10",
+ "@firebase/database": "1.0.9",
+ "@firebase/database-types": "1.0.6",
+ "@firebase/logger": "0.4.3",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@firebase/database-types": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.4.tgz",
- "integrity": "sha512-mz9ZzbH6euFXbcBo+enuJ36I5dR5w+enJHHjy9Y5ThCdKUseqfDjW3vCp1YxE9zygFCSjJJ/z1cQ+zodvUcwPQ==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.6.tgz",
+ "integrity": "sha512-sMI7IynSZBsyGbUugc8PKE1jwKbnvaieAz/RxuM57PZQNCi6Rteiviwcw/jqZOX6igqYJwXWZ3UzKOZo2nUDRA==",
"license": "Apache-2.0",
"dependencies": {
"@firebase/app-types": "0.9.2",
- "@firebase/util": "1.9.7"
+ "@firebase/util": "1.10.1"
}
},
"node_modules/@firebase/firestore": {
- "version": "4.7.1",
- "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.7.1.tgz",
- "integrity": "sha512-WliQNa8GVcH6EWkH0NAf+uAnxNiBuH+G8Buzr2ZS1NznOhJDK/q6Hsjv5TzNrijLTAdEfj/wk9VEv994KDSjxg==",
+ "version": "4.7.4",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.7.4.tgz",
+ "integrity": "sha512-K2nq4w+NF8J1waGawY5OHLawP/Aw5CYxyDstVv1NZemGPcM3U+LZ9EPaXr1PatYIrPA7fS4DxZoWcbB0aGJ8Zg==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.7",
- "@firebase/webchannel-wrapper": "1.0.1",
+ "@firebase/component": "0.6.10",
+ "@firebase/logger": "0.4.3",
+ "@firebase/util": "1.10.1",
+ "@firebase/webchannel-wrapper": "1.0.2",
"@grpc/grpc-js": "~1.9.0",
"@grpc/proto-loader": "^0.7.8",
- "tslib": "^2.1.0",
- "undici": "6.19.7"
+ "tslib": "^2.1.0"
},
"engines": {
- "node": ">=10.10.0"
+ "node": ">=18.0.0"
},
"peerDependencies": {
"@firebase/app": "0.x"
}
},
"node_modules/@firebase/firestore-compat": {
- "version": "0.3.36",
- "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.36.tgz",
- "integrity": "sha512-NtoIm7CT9f+SFB7cPMCtyCSxZReh/+SII5X4TQH394S3dwhru9HIfvEOKAMuAnXsSsLH72jXPUgdsEAUqg6Oug==",
+ "version": "0.3.39",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.39.tgz",
+ "integrity": "sha512-CsK8g34jNeHx95LISDRTcArJLonW+zJCqHI1Ez9WNiLAK2X8FeQ4UiD+RwOwxAIR+t2a6xED/5Fe6ZIqx7MuoQ==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/firestore": "4.7.1",
+ "@firebase/component": "0.6.10",
+ "@firebase/firestore": "4.7.4",
"@firebase/firestore-types": "3.0.2",
- "@firebase/util": "1.9.7",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
},
+ "engines": {
+ "node": ">=18.0.0"
+ },
"peerDependencies": {
"@firebase/app-compat": "0.x"
}
@@ -2816,35 +2859,40 @@
}
},
"node_modules/@firebase/functions": {
- "version": "0.11.7",
- "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.11.7.tgz",
- "integrity": "sha512-xaUsGI2kYrI8zJXgrNB7SrJKB8v1vJqR16YYi6g6dFTgBz4+VzWJFqqVU60BbdAWm6fXnUrg9gjlJQeqomT2Vg==",
+ "version": "0.11.9",
+ "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.11.9.tgz",
+ "integrity": "sha512-dhO5IUfQRCsrc20YD20nSOX+QCT+cH6N86HlZOLz2XgyEFgzOdBQnUot4EabBJQRkMBI7fZWUrbYfRcnov53ug==",
"license": "Apache-2.0",
"dependencies": {
"@firebase/app-check-interop-types": "0.3.2",
"@firebase/auth-interop-types": "0.2.3",
- "@firebase/component": "0.6.8",
+ "@firebase/component": "0.6.10",
"@firebase/messaging-interop-types": "0.2.2",
- "@firebase/util": "1.9.7",
- "tslib": "^2.1.0",
- "undici": "6.19.7"
+ "@firebase/util": "1.10.1",
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
},
"peerDependencies": {
"@firebase/app": "0.x"
}
},
"node_modules/@firebase/functions-compat": {
- "version": "0.3.13",
- "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.13.tgz",
- "integrity": "sha512-qcZvJO2ed6PAD+18DanVztw7WyQVQK43HoRhxusHAwDFvK/xY+mcGpj+IpfdxTNMBGCOIxKFp4Xqk/c2nubBlQ==",
+ "version": "0.3.15",
+ "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.15.tgz",
+ "integrity": "sha512-eiHpc6Sd9Y/SNhBsGi944SapiFbfTPKsiSUQ74QxNSs0yoxvABeIRolVMFk4TokP57NGmstGYpYte02XGNPcYw==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/functions": "0.11.7",
+ "@firebase/component": "0.6.10",
+ "@firebase/functions": "0.11.9",
"@firebase/functions-types": "0.6.2",
- "@firebase/util": "1.9.7",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
},
+ "engines": {
+ "node": ">=18.0.0"
+ },
"peerDependencies": {
"@firebase/app-compat": "0.x"
}
@@ -2856,13 +2904,13 @@
"license": "Apache-2.0"
},
"node_modules/@firebase/installations": {
- "version": "0.6.8",
- "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.8.tgz",
- "integrity": "sha512-57V374qdb2+wT5v7+ntpLXBjZkO6WRgmAUbVkRfFTM/4t980p0FesbqTAcOIiM8U866UeuuuF8lYH70D3jM/jQ==",
+ "version": "0.6.10",
+ "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.10.tgz",
+ "integrity": "sha512-TuGSOMqkFrllxa0X/8VZIqBCRH4POndU/iWKWkRmkh12+/xKSpdp+y/kWaVbsySrelltan6LeYlcYPmLibWbwg==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/util": "1.9.7",
+ "@firebase/component": "0.6.10",
+ "@firebase/util": "1.10.1",
"idb": "7.1.1",
"tslib": "^2.1.0"
},
@@ -2871,15 +2919,15 @@
}
},
"node_modules/@firebase/installations-compat": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.8.tgz",
- "integrity": "sha512-pI2q8JFHB7yIq/szmhzGSWXtOvtzl6tCUmyykv5C8vvfOVJUH6mP4M4iwjbK8S1JotKd/K70+JWyYlxgQ0Kpyw==",
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.10.tgz",
+ "integrity": "sha512-YTonkcVz3AK7RF8xFhvs5CwDuJ0xbzzCJIwXoV14gnzdYbMgy6vWlUUbzkvbtEDXzPRHB0n7aGZl56oy9dLOFw==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/installations": "0.6.8",
+ "@firebase/component": "0.6.10",
+ "@firebase/installations": "0.6.10",
"@firebase/installations-types": "0.5.2",
- "@firebase/util": "1.9.7",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2896,24 +2944,27 @@
}
},
"node_modules/@firebase/logger": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.2.tgz",
- "integrity": "sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A==",
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.3.tgz",
+ "integrity": "sha512-Th42bWJg18EF5bJwhRosn2M/eYxmbWCwXZr4hHX7ltO0SE3QLrpgiMKeRBR/NW7vJke7i0n3i8esbCW2s93qBw==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@firebase/messaging": {
- "version": "0.12.10",
- "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.10.tgz",
- "integrity": "sha512-fGbxJPKpl2DIKNJGhbk4mYPcM+qE2gl91r6xPoiol/mN88F5Ym6UeRdMVZah+pijh9WxM55alTYwXuW40r1Y2Q==",
+ "version": "0.12.13",
+ "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.13.tgz",
+ "integrity": "sha512-YLa8PWl+BgiOVR5WOyzl21fVJFJeBRfniNuN25d9DBrQzppSAahuN6yS+vt1OIjvZNPN4pZ/lcRLYupbGu4W0w==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/installations": "0.6.8",
+ "@firebase/component": "0.6.10",
+ "@firebase/installations": "0.6.10",
"@firebase/messaging-interop-types": "0.2.2",
- "@firebase/util": "1.9.7",
+ "@firebase/util": "1.10.1",
"idb": "7.1.1",
"tslib": "^2.1.0"
},
@@ -2922,14 +2973,14 @@
}
},
"node_modules/@firebase/messaging-compat": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.10.tgz",
- "integrity": "sha512-FXQm7rcowkDm8kFLduHV35IRYCRo+Ng0PIp/t1+EBuEbyplaKkGjZ932pE+owf/XR+G/60ku2QRBptRGLXZydg==",
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.13.tgz",
+ "integrity": "sha512-9ootPClS6m2c2KIzo7AqSHaWzAw28zWcjQPjVv7WeQDu6wjufpbOg+7tuVzb+gqpF9Issa3lDoYOwlO0ZudO3g==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/messaging": "0.12.10",
- "@firebase/util": "1.9.7",
+ "@firebase/component": "0.6.10",
+ "@firebase/messaging": "0.12.13",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2943,15 +2994,15 @@
"license": "Apache-2.0"
},
"node_modules/@firebase/performance": {
- "version": "0.6.8",
- "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.8.tgz",
- "integrity": "sha512-F+alziiIZ6Yn8FG47mxwljq+4XkgkT2uJIFRlkyViUQRLzrogaUJW6u/+6ZrePXnouKlKIwzqos3PVJraPEcCA==",
+ "version": "0.6.10",
+ "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.10.tgz",
+ "integrity": "sha512-x/mNYKGxq7A+QV0EiEZeD2S+E+kw+UcZ8FXuE7qDJyGGt/0Wd+bIIL7RakG/VrFt7/UYc//nKygDc7/Ig7sOmQ==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/installations": "0.6.8",
- "@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.7",
+ "@firebase/component": "0.6.10",
+ "@firebase/installations": "0.6.10",
+ "@firebase/logger": "0.4.3",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2959,16 +3010,16 @@
}
},
"node_modules/@firebase/performance-compat": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.8.tgz",
- "integrity": "sha512-o7TFClRVJd3VIBoY7KZQqtCeW0PC6v9uBzM6Lfw3Nc9D7hM6OonqecYvh7NwJ6R14k+xM27frLS4BcCvFHKw2A==",
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.10.tgz",
+ "integrity": "sha512-0h1qYkF6I79DSSpHfTQFvb91fo8shmmwiPzWFYAPdPK02bSWpKwVssNYlZX2iUnumxerDMbl7dWN+Im/W3bnXA==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/logger": "0.4.2",
- "@firebase/performance": "0.6.8",
+ "@firebase/component": "0.6.10",
+ "@firebase/logger": "0.4.3",
+ "@firebase/performance": "0.6.10",
"@firebase/performance-types": "0.2.2",
- "@firebase/util": "1.9.7",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2982,15 +3033,15 @@
"license": "Apache-2.0"
},
"node_modules/@firebase/remote-config": {
- "version": "0.4.8",
- "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.8.tgz",
- "integrity": "sha512-AMLqe6wfIRnjc6FkCWOSUjhc1fSTEf8o+cv1NolFvbiJ/tU+TqN4pI7pT+MIKQzNiq5fxLehkOx+xtAQBxPJKQ==",
+ "version": "0.4.10",
+ "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.10.tgz",
+ "integrity": "sha512-jTRjy3TdqzVna19m5a1HEHE5BG4Z3BQTxBgvQRTmMKlHacx4QS0CToAas7R9M9UkxpgFcVuAE7FpWIOWQGCEWw==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/installations": "0.6.8",
- "@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.7",
+ "@firebase/component": "0.6.10",
+ "@firebase/installations": "0.6.10",
+ "@firebase/logger": "0.4.3",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2998,16 +3049,16 @@
}
},
"node_modules/@firebase/remote-config-compat": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.8.tgz",
- "integrity": "sha512-UxSFOp6dzFj2AHB8Bq/BYtbq5iFyizKx4Rd6WxAdaKYM8cnPMeK+l2v+Oogtjae+AeyHRI+MfL2acsfVe5cd2A==",
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.10.tgz",
+ "integrity": "sha512-fIi5OB2zk0zpChMV/tTd0oEZcZI8TlwQDlLlcrDpMOV5l5dqd0JNlWKh6Fwmh4izmytk+rZIAIpnak/NjGVesQ==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/logger": "0.4.2",
- "@firebase/remote-config": "0.4.8",
+ "@firebase/component": "0.6.10",
+ "@firebase/logger": "0.4.3",
+ "@firebase/remote-config": "0.4.10",
"@firebase/remote-config-types": "0.3.2",
- "@firebase/util": "1.9.7",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -3021,32 +3072,37 @@
"license": "Apache-2.0"
},
"node_modules/@firebase/storage": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.13.1.tgz",
- "integrity": "sha512-L6AJ5tWgHSi2g/gbc/2Pbm3qxmoEg9THmPIOpRsLwuz9LPeWbhyMQeGlqxWqtZGQO/z/LMjGYadNlupQj0HNfw==",
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.13.3.tgz",
+ "integrity": "sha512-B5HiJ7isYKaT4dOEV43f2ySdhQxzq+SQEm7lqXebJ8AYCsebdHrgGzrPR0LR962xGjPzJHFKx63gA8Be/P2MCw==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/util": "1.9.7",
- "tslib": "^2.1.0",
- "undici": "6.19.7"
+ "@firebase/component": "0.6.10",
+ "@firebase/util": "1.10.1",
+ "tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
},
"peerDependencies": {
"@firebase/app": "0.x"
}
},
"node_modules/@firebase/storage-compat": {
- "version": "0.3.11",
- "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.11.tgz",
- "integrity": "sha512-EEa9jgm/aRVIGSD0ByYAsZ0tvEKfVwSp9uFoa/97BISGWGjSNPIWjenaDvpDZ7aL8OxaGIpwuk700aHy7/T0Ug==",
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.13.tgz",
+ "integrity": "sha512-15kje7JALswRCBKsCSvKg5FbqUYykaIMqMbZRD7I6uVRWwdyTvez5MBQfMhBia2JcEmPiDpXhJTXH4PAWFiA8g==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/component": "0.6.8",
- "@firebase/storage": "0.13.1",
+ "@firebase/component": "0.6.10",
+ "@firebase/storage": "0.13.3",
"@firebase/storage-types": "0.8.2",
- "@firebase/util": "1.9.7",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
},
+ "engines": {
+ "node": ">=18.0.0"
+ },
"peerDependencies": {
"@firebase/app-compat": "0.x"
}
@@ -3062,24 +3118,27 @@
}
},
"node_modules/@firebase/util": {
- "version": "1.9.7",
- "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.7.tgz",
- "integrity": "sha512-fBVNH/8bRbYjqlbIhZ+lBtdAAS4WqZumx03K06/u7fJSpz1TGjEMm1ImvKD47w+xaFKIP2ori6z8BrbakRfjJA==",
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.10.1.tgz",
+ "integrity": "sha512-AIhFnCCjM8FmCqSNlNPTuOk3+gpHC1RkeNUBLtPbcqGYpN5MxI5q7Yby+rxycweOZOCboDzfIj8WyaY4tpQG/g==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
- "node_modules/@firebase/vertexai-preview": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/@firebase/vertexai-preview/-/vertexai-preview-0.0.3.tgz",
- "integrity": "sha512-KVtUWLp+ScgiwkDKAvNkVucAyhLVQp6C6lhnVEuIg4mWhWcS3oerjAeVhZT4uNofKwWxRsOaB2Yec7DMTXlQPQ==",
+ "node_modules/@firebase/vertexai": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@firebase/vertexai/-/vertexai-1.0.0.tgz",
+ "integrity": "sha512-48N3Lp/9GgiCCRfrSdHS+Y1IiMdYXvnHFO/f+HL1PgUtBq7WQ/fWmYOX3mzAN36zvytq13nb68ImF+GALopp+Q==",
"license": "Apache-2.0",
"dependencies": {
"@firebase/app-check-interop-types": "0.3.2",
- "@firebase/component": "0.6.8",
- "@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.7",
+ "@firebase/component": "0.6.10",
+ "@firebase/logger": "0.4.3",
+ "@firebase/util": "1.10.1",
"tslib": "^2.1.0"
},
"engines": {
@@ -3091,9 +3150,9 @@
}
},
"node_modules/@firebase/webchannel-wrapper": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.1.tgz",
- "integrity": "sha512-jmEnr/pk0yVkA7mIlHNnxCi+wWzOFUg0WyIotgkKAb2u1J7fAeDBcVNSTjTihbAYNusCLQdW5s9IJ5qwnEufcQ==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.2.tgz",
+ "integrity": "sha512-3F4iA2E+NtdMbOU0XC1cHE8q6MqpGIKRj62oGOF38S6AAx5VHR9cXmoDUSj7ejvTAT7m6jxuEeQkHeq0F+mU2w==",
"license": "Apache-2.0"
},
"node_modules/@grpc/grpc-js": {
@@ -10217,38 +10276,39 @@
}
},
"node_modules/firebase": {
- "version": "10.13.1",
- "resolved": "https://registry.npmjs.org/firebase/-/firebase-10.13.1.tgz",
- "integrity": "sha512-L5BSkmvB2dzCUMpr8i/O8WMJC3Nqj5Ld8Wj/qnak+tz2Ga+JH6/FO93xArg9IGhktCrPXVODoWp6t9ybdgmXCA==",
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/firebase/-/firebase-11.0.1.tgz",
+ "integrity": "sha512-qsFb8dMcQINEDhJteG7RP+GqwgSRvfyiexQqHd5JToDdm87i9I2rGC4XQsGawKGxzKwZ/ISdgwNWxXAFYdCC6A==",
"license": "Apache-2.0",
"dependencies": {
- "@firebase/analytics": "0.10.7",
- "@firebase/analytics-compat": "0.2.13",
- "@firebase/app": "0.10.10",
- "@firebase/app-check": "0.8.7",
- "@firebase/app-check-compat": "0.3.14",
- "@firebase/app-compat": "0.2.40",
+ "@firebase/analytics": "0.10.9",
+ "@firebase/analytics-compat": "0.2.15",
+ "@firebase/app": "0.10.15",
+ "@firebase/app-check": "0.8.9",
+ "@firebase/app-check-compat": "0.3.16",
+ "@firebase/app-compat": "0.2.45",
"@firebase/app-types": "0.9.2",
- "@firebase/auth": "1.7.8",
- "@firebase/auth-compat": "0.5.13",
- "@firebase/database": "1.0.7",
- "@firebase/database-compat": "1.0.7",
- "@firebase/firestore": "4.7.1",
- "@firebase/firestore-compat": "0.3.36",
- "@firebase/functions": "0.11.7",
- "@firebase/functions-compat": "0.3.13",
- "@firebase/installations": "0.6.8",
- "@firebase/installations-compat": "0.2.8",
- "@firebase/messaging": "0.12.10",
- "@firebase/messaging-compat": "0.2.10",
- "@firebase/performance": "0.6.8",
- "@firebase/performance-compat": "0.2.8",
- "@firebase/remote-config": "0.4.8",
- "@firebase/remote-config-compat": "0.2.8",
- "@firebase/storage": "0.13.1",
- "@firebase/storage-compat": "0.3.11",
- "@firebase/util": "1.9.7",
- "@firebase/vertexai-preview": "0.0.3"
+ "@firebase/auth": "1.8.0",
+ "@firebase/auth-compat": "0.5.15",
+ "@firebase/data-connect": "0.1.1",
+ "@firebase/database": "1.0.9",
+ "@firebase/database-compat": "2.0.0",
+ "@firebase/firestore": "4.7.4",
+ "@firebase/firestore-compat": "0.3.39",
+ "@firebase/functions": "0.11.9",
+ "@firebase/functions-compat": "0.3.15",
+ "@firebase/installations": "0.6.10",
+ "@firebase/installations-compat": "0.2.10",
+ "@firebase/messaging": "0.12.13",
+ "@firebase/messaging-compat": "0.2.13",
+ "@firebase/performance": "0.6.10",
+ "@firebase/performance-compat": "0.2.10",
+ "@firebase/remote-config": "0.4.10",
+ "@firebase/remote-config-compat": "0.2.10",
+ "@firebase/storage": "0.13.3",
+ "@firebase/storage-compat": "0.3.13",
+ "@firebase/util": "1.10.1",
+ "@firebase/vertexai": "1.0.0"
}
},
"node_modules/flat-cache": {
@@ -20282,15 +20342,6 @@
"integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
"license": "MIT"
},
- "node_modules/undici": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.7.tgz",
- "integrity": "sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A==",
- "license": "MIT",
- "engines": {
- "node": ">=18.17"
- }
- },
"node_modules/undici-types": {
"version": "6.19.8",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
diff --git a/package.json b/package.json
index e82ca77..2358812 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
- "firebase": "^10.13.1",
+ "firebase": "^11.0.1",
"lucide-react": "^0.453.0",
"react": "^18.3.1",
"react-circular-progressbar": "^2.1.0",
diff --git a/src/Components/Registration.js b/src/Components/Registration.js
index 490d334..a57a78d 100644
--- a/src/Components/Registration.js
+++ b/src/Components/Registration.js
@@ -67,7 +67,7 @@ const Registration = () => {
.then((generatedUserId) => {
setUserId(generatedUserId);
localStorage.setItem("userId", generatedUserId);
- navigate("/Login");
+ navigate("/MyActivity"); // Redirect to MyActivity page
})
.catch((error) => {
setError("Error saving user data. Please try again.");
@@ -79,7 +79,7 @@ const Registration = () => {
.then((generatedUserId) => {
setUserId(generatedUserId);
localStorage.setItem("userId", generatedUserId);
- navigate("/Login");
+ navigate("/MyActivity"); // Redirect to MyActivity page
})
.catch((error) => {
setError("Error saving user data. Please try again.");
diff --git a/src/FirebaseOperations.js b/src/FirebaseOperations.js
index e1dd7f7..e6bf0c1 100644
--- a/src/FirebaseOperations.js
+++ b/src/FirebaseOperations.js
@@ -1,14 +1,23 @@
-import { realDb,auth } from "./firebase";
-
-import { ref, set, push, get, child, query, orderByChild, startAt, endAt } from "firebase/database";
+import { realDb, auth } from "./firebase";
+import {
+ ref,
+ set,
+ push,
+ get,
+ child,
+ query,
+ orderByChild,
+ startAt,
+ endAt,
+} from "firebase/database";
export const getCurrentUser = async () => {
const user = auth.currentUser;
if (user) {
const userId = user.uid; // Get the UID of the current user
const userRef = ref(realDb, `users/${userId}`);
-
+
try {
const snapshot = await get(userRef);
if (snapshot.exists()) {
@@ -37,15 +46,16 @@ export const createUserInFirebase = (user) => {
birthdate: user.birthdate,
country: user.country,
email: user.email,
+ imageURL: user.imageURL,
})
- .then(() => {
- console.log("User data saved successfully for userId:", userId);
- return userId;
- })
- .catch((error) => {
- console.error("Error creating user in Firebase:", error);
- throw error; // Rethrow error to catch it in the main flow
- });
+ .then(() => {
+ console.log("User data saved successfully for userId:", userId);
+ return userId;
+ })
+ .catch((error) => {
+ console.error("Error creating user in Firebase:", error);
+ throw error;
+ });
};
export const createEmptyUserChatsCollection = (userId) => {
@@ -60,7 +70,9 @@ export const createEmptyUserChatsCollection = (userId) => {
});
};
export const fetchRecentChats = async (userId) => {
- const snapshot = await realDb.ref(`/users/${userId}/recentChats`).once("value");
+ const snapshot = await realDb
+ .ref(`/users/${userId}/recentChats`)
+ .once("value");
const recentChats = [];
snapshot.forEach((childSnapshot) => {
recentChats.push(childSnapshot.val());
@@ -122,4 +134,4 @@ export const getLoggedInUser = () => {
// No user is signed in, you may redirect or handle the situation
return null;
}
-};
\ No newline at end of file
+};
From 3db5990784c8673cb2ac6ff7b5f165d391751290 Mon Sep 17 00:00:00 2001
From: Patel Khushi Sanjivbhai
<155909246+Khushi130404@users.noreply.github.com>
Date: Wed, 30 Oct 2024 17:34:53 +0530
Subject: [PATCH 4/4] Reg-final
---
src/Components/Registration.js | 67 ++++++++++++++--------------------
src/FirebaseOperations.js | 4 +-
2 files changed, 30 insertions(+), 41 deletions(-)
diff --git a/src/Components/Registration.js b/src/Components/Registration.js
index a57a78d..7f2a7fd 100644
--- a/src/Components/Registration.js
+++ b/src/Components/Registration.js
@@ -1,6 +1,4 @@
import React, { useState } from "react";
-import { createUserWithEmailAndPassword } from "firebase/auth";
-import { auth } from "../firebase";
import { createUserInFirebase } from "../FirebaseOperations";
import { useNavigate } from "react-router-dom";
import { User } from "../models/User";
@@ -44,37 +42,22 @@ const Registration = () => {
e.preventDefault();
setError("");
- createUserWithEmailAndPassword(auth, email, password)
- .then((userCredential) => {
- const user = userCredential.user;
- const formattedBirthdate = formatDate(birthdate);
-
- const newUser = new User(
- user.uid,
- username,
- password,
- formattedBirthdate,
- country,
- email
- );
-
- if (profileImage) {
- const storageRef = ref(storage, `userProfiles/${user.uid}`);
- uploadBytes(storageRef, profileImage).then(() => {
- getDownloadURL(storageRef).then((url) => {
- newUser.imageUrl = url;
- createUserInFirebase(newUser)
- .then((generatedUserId) => {
- setUserId(generatedUserId);
- localStorage.setItem("userId", generatedUserId);
- navigate("/MyActivity"); // Redirect to MyActivity page
- })
- .catch((error) => {
- setError("Error saving user data. Please try again.");
- });
- });
- });
- } else {
+ // Create new user object
+ const formattedBirthdate = formatDate(birthdate);
+ const newUser = new User(
+ null, // userId will be generated in Firebase
+ username,
+ password,
+ formattedBirthdate,
+ country,
+ email
+ );
+
+ if (profileImage) {
+ const storageRef = ref(storage, `userProfiles/${Date.now()}_${username}`);
+ uploadBytes(storageRef, profileImage).then(() => {
+ getDownloadURL(storageRef).then((url) => {
+ newUser.imageUrl = url;
createUserInFirebase(newUser)
.then((generatedUserId) => {
setUserId(generatedUserId);
@@ -84,13 +67,19 @@ const Registration = () => {
.catch((error) => {
setError("Error saving user data. Please try again.");
});
- }
- })
- .catch((error) => {
- setError(
- "Error creating account. Please check your details and try again."
- );
+ });
});
+ } else {
+ createUserInFirebase(newUser)
+ .then((generatedUserId) => {
+ setUserId(generatedUserId);
+ localStorage.setItem("userId", generatedUserId);
+ navigate("/MyActivity"); // Redirect to MyActivity page
+ })
+ .catch((error) => {
+ setError("Error saving user data. Please try again.");
+ });
+ }
};
const handleLoginRedirect = () => {
diff --git a/src/FirebaseOperations.js b/src/FirebaseOperations.js
index e6bf0c1..778c842 100644
--- a/src/FirebaseOperations.js
+++ b/src/FirebaseOperations.js
@@ -46,7 +46,7 @@ export const createUserInFirebase = (user) => {
birthdate: user.birthdate,
country: user.country,
email: user.email,
- imageURL: user.imageURL,
+ imageUrl: user.imageUrl,
})
.then(() => {
console.log("User data saved successfully for userId:", userId);
@@ -54,7 +54,7 @@ export const createUserInFirebase = (user) => {
})
.catch((error) => {
console.error("Error creating user in Firebase:", error);
- throw error;
+ throw error; // Rethrow error to catch it in the main flow
});
};