
package vasu.apps.schooldashboard.Services
import android.util.Log import io.appwrite.Client import io.appwrite.ID import io.appwrite.exceptions.AppwriteException import io.appwrite.models.User import io.appwrite.services.Account
class AccountService(client: Client) { private val account = Account(client)
suspend fun getLoggedIn(): User<Map<String, Any>>? {
return try {
account.get()
} catch (e: AppwriteException) {
null
}
}
suspend fun login(email: String, password: String): User<Map<String, Any>>? {
return try {
account.createEmailPasswordSession(email, password)
getLoggedIn()
} catch (e: AppwriteException) {
null
}
}
suspend fun register(
email: String,
password: String,
name: String,
phoneNumber: String, // e.g., "9876543210"
label: String // Custom label to be stored with phone number
): User<Map<String, Any>>? {
return try {
val sanitizedPhoneNumber = phoneNumber.filter { it.isDigit() }
val fullPhoneNumber = "+91$sanitizedPhoneNumber"
if (fullPhoneNumber.length > 15) {
Log.e("AccountService", "Phone number exceeds 15 character limit: $fullPhoneNumber")
return null
}
account.create(ID.unique(), email, password, name)
val user = login(email, password)
user?.let {
account.updatePhone(user.id, fullPhoneNumber)
}
user
} catch (e: AppwriteException) {
Log.e("AccountService", e.message.toString())
} as User<Map<String, Any>>?
}
suspend fun logout() {
account.deleteSession("current")
}
}
in this i get error like this : E Invalid phone param: Phone number must start with a '+' can have a maximum of fifteen digits.
and i input the number like this : +911234567890

FYI, it's best to wrap code in backticks to format a bit nicer. You can use 1 backtick for inline code (https://www.markdownguide.org/basic-syntax/#code) and 3 backticks for multiline code (https://www.markdownguide.org/extended-syntax/#syntax-highlighting).

account.updatePhone(user.id, fullPhoneNumber)
What told you to pass user id and phone number as the params?
Recommended threads
- how many Teams can be created?
I am creating an app where I will let users create groups. This could mean there will be many groups created by user, to isolate those groups properly I am thin...
- React native app login via Safari
Hi! I deployed for debug my React Native app in web, chrome everythink works well but in safari on mac and ios I cant login. I found this one error in safari co...
- OAuth2 Error: invalid success param url ...
Hi everyone! I'm trying to implement Google OAuth2 login in a React Native app (using the Android simulator) with Appwrite Cloud, and I'm getting the following ...
