Skip to content
Back

create Anonymous Session Issue

  • 0
  • React Native
  • Auth
RiChu
12 Nov, 2024, 06:59

hi guys, I'm trying to sign with just phone number and it returns existingUser.documents[0] data , but then it just crashes the whole expo app, but it works fine for web

TypeScript

export async function signIn(phone) {
  try {
    // Delete any active sessions to avoid conflicts
    await deleteSession();

    // Validate the phone number and check if user exists
    await validatePhoneNumber(phone);
    console.log("Checking if user with phone number exists...");

    const existingUser = await databases.listDocuments(
      appwriteConfig.databaseId,
      appwriteConfig.userCollectionId,
      [Query.equal("phone", phone)]
    );

    if (existingUser.documents.length > 0) {
      console.log("User found, creating a new anonymous session...");
      
      // Create a new anonymous session for the existing user
      const session = await account.createAnonymousSession();
      console.log("Session created:", session);

      return existingUser.documents[0];
    } else {
      throw new Error("No user found with this phone number.");
    }
  } catch (error) {
    console.error("Error in sign-in:", error.message);
    throw new Error("Error in sign-in: " + error.message);
  }
}

export async function deleteSession() {
  try {
    console.log("Deleting all sessions if available...");
    const activeSessions = await account.listSessions();
    for (const session of activeSessions.sessions) {
      await account.deleteSession(session.$id);
    }
    console.log("All active sessions deleted.");
  } catch (error) {
    console.error("Error while deleting session:", error.message);
  }
}
TL;DR
Issue: The app crashes when trying to sign in with a phone number, but it works fine on web. Solution: It seems the crash is related to creating an anonymous session for an existing user. Developers can check the code for any bugs or errors in the authentication flow to resolve the crash issue.
Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more