AppwriteException: Invalid document structure: Missing required attribute "userId"
- 0
- Databases
- Accounts
- Web
- Users
I am getting this error at the line console.log("Error while creating a user in 'user' database, saveUserToDB: ", error); console.log(name, email, username, userId); prints two times, first time, it is printing the value of userId as expected but at the second time that prints undefined. But when I checked my collection, the records are getting created then why this error?
auth.js import { ID } from "appwrite"; import { account, avatars } from "./config"; import { saveUserToDB } from "./db";
export const createAccount = async ({ email, password, name, username }) => { try { const userAccount = await account.create(ID.unique(), email, password, name);
if (userAccount) {
console.log(userAccount.$id);
const avatarUrl = avatars.getInitials(name);
await saveUserToDB({ name: name, email: email, username: username, userId: userAccount.$id, imageUrl: avatarUrl });
return login({ email, password });
} else {
return userAccount;
}
} catch (error) {
throw error;
}
}
export const login = async ({ email, password }) => { try { const session = await account.createEmailSession(email, password); if (session) { return session } else { throw new Error("Failed to create a session"); } } catch (error) { throw error; } }
export const getCurrentUser = async () => { try { const currentUser = await account.getprefs(); return currentUser; } catch (error) { console.log("Appwrite error on getCurrentUser: ", error); } return null; }
export const logout = async () => { try { return await account.deleteSessions(); } catch (error) { console.log("Appwrite Service error on userLogout: ", error); } }
Another file db.js import { client, databases, storage, appwriteConfig } from "./config"; import { ID } from "appwrite";
export const saveUserToDB = async ({ name, email, username, userId, imageUrl }) => { try { console.log(name, email, username, userId); return await databases.createDocument( appwriteConfig.databaseId, appwriteConfig.userCollectionId, ID.unique(), { name, email, username, userId, imageUrl } ); } catch (error) { console.log("Error while creating a user in 'user' database, saveUserToDB: ", error); } }
Recommended threads
- Deploying to Sites will not work. NextJS
It’s been many times I have attempted to deploy to Appwrite and it’s always failed. The deployment itself works, the logs show it works perfectly, however when ...
- custom domain on cloudflair was verified...
I've added the credentials as instructed by the appwrite documentation, with cname set to dns only without proxy, and it successfully validated my domain, and w...
- cli broke with new varchar type??
``` appwrite types ./appwritetypes ℹ Info: Detected language: ts ℹ Info: Directory: ./...