From 308d3019127f7d571d32daaa2beac994085929ba Mon Sep 17 00:00:00 2001 From: leon-morival Date: Fri, 5 Sep 2025 17:00:23 +0200 Subject: [PATCH] google --- src/screens/CreatePseudo.js | 28 ++++++++++++++++++---------- src/screens/Login.js | 16 ++++++++++------ 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/screens/CreatePseudo.js b/src/screens/CreatePseudo.js index 830013e..47310ed 100644 --- a/src/screens/CreatePseudo.js +++ b/src/screens/CreatePseudo.js @@ -1,16 +1,16 @@ -import { View, Text } from "react-native"; import React, { useState } from "react"; +import { Text, View } from "react-native"; import { useGlobal } from "reactn"; -import Page from "../layouts/Page"; import { background } from "../assets"; +import GradientButton from "../components/GradientButton"; +import { Input } from "../components/Input"; import ItemContainer from "../components/ItemContainer/ItemContainer"; +import firebase, { usersRef } from "../config/firebase"; +import Page from "../layouts/Page"; +import { Routes } from "../navigation"; +import { navigate } from "../navigation/NavigationService"; import { Palette } from "../styles"; import { FONT_FAMILY } from "../styles/Fonts"; -import { Input } from "../components/Input"; -import GradientButton from "../components/GradientButton"; -import { navigate } from "../navigation/NavigationService"; -import { Routes } from "../navigation"; -import firebase, { usersRef } from "../config/firebase"; const CreatePseudo = () => { const [userName, setUserName] = useState(""); @@ -29,7 +29,10 @@ const CreatePseudo = () => { } // Check uniqueness (case-insensitive) const lower = val.toLowerCase(); - const snap = await usersRef.where("userNameLower", "==", lower).limit(1).get(); + const snap = await usersRef + .where("userNameLower", "==", lower) + .limit(1) + .get(); if (!snap.empty && snap.docs[0].id !== uid) { setTooltip({ text: "Ce pseudo est déjà pris", type: "error" }); return; @@ -40,14 +43,19 @@ const CreatePseudo = () => { userName: val, userNameLower: lower, updatedAt: firebase.firestore.FieldValue.serverTimestamp(), + createdAt: firebase.firestore.FieldValue.serverTimestamp(), + email: firebase.auth().currentUser?.email || null, }, - { merge: true }, + { merge: true } ); setTooltip({ text: `Bienvenue ${val}`, type: "success" }); navigate(Routes.BottomTab); } catch (e) { console.log("CreatePseudo error", e?.message); - setTooltip({ text: e?.message || "Enregistrement impossible", type: "error" }); + setTooltip({ + text: e?.message || "Enregistrement impossible", + type: "error", + }); } finally { setLoading(false); } diff --git a/src/screens/Login.js b/src/screens/Login.js index 347b9c3..79c928c 100644 --- a/src/screens/Login.js +++ b/src/screens/Login.js @@ -3,7 +3,7 @@ import * as AuthSession from "expo-auth-session"; import * as GoogleAuth from "expo-auth-session/providers/google"; import * as WebBrowser from "expo-web-browser"; import React, { useEffect, useState } from "react"; -import { Platform, Pressable, Text, View } from "react-native"; +import { Pressable, Text, View } from "react-native"; import { useGlobal } from "reactn"; import { background } from "../assets"; import GradientButton from "../components/GradientButton.js"; @@ -106,13 +106,15 @@ export default ({ navigation }) => { if (!idToken) { // Otherwise, exchange the authorization code for tokens using PKCE. - const code = response?.params?.code || response?.authentication?.code; + const code = + response?.params?.code || response?.authentication?.code; if (!code) throw new Error("Code d'autorisation Google manquant"); // Use the exact clientId used during the authorize request. const clientId = request?.clientId; const discovery = { - authorizationEndpoint: "https://accounts.google.com/o/oauth2/v2/auth", + authorizationEndpoint: + "https://accounts.google.com/o/oauth2/v2/auth", tokenEndpoint: "https://oauth2.googleapis.com/token", revocationEndpoint: "https://oauth2.googleapis.com/revoke", }; @@ -136,9 +138,11 @@ export default ({ navigation }) => { idToken = tokenResponse?.id_token; } - if (!idToken) throw new Error("Jeton Google manquant (échange/retour)"); + if (!idToken) + throw new Error("Jeton Google manquant (échange/retour)"); - const credential = firebase.auth.GoogleAuthProvider.credential(idToken); + const credential = + firebase.auth.GoogleAuthProvider.credential(idToken); await firebase.auth().signInWithCredential(credential); await afterLoginNavigate(); } @@ -167,7 +171,7 @@ export default ({ navigation }) => { hideBackButton > - +