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
- Hi Folks, Database Writing Issue
Hey Folks im trying to get logging setup on my website but im getting an error, i dont have any document id and i think this is the issue but i havent got the f...
- Middleware
how to make middleware in nextjs appwrite with client side auth?
- Error 400: redirect_uri_mismatch
Hi team, Google OAuth was working fine with our Appwrite Cloud setup until yesterday. We did not change any configuration in Appwrite, Google Cloud, or our cod...