So right now, i'm following appwrite's doc in next js. The problem is this:
"use client";
import { useState } from "react";
import {Client, Account, ID, Databases, Permission, Role, Teams} from 'appwrite'
const conf = {
appwriteUrl: String(process.env.NEXT_PUBLIC_APPWRITE_URL),
appwriteProjectId: String(process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID),
appwriteAPIKey: String(process.env.NEXT_PUBLUC_APPWRITE_API_KEY),
}
const appwriteClient = new Client()
.setEndpoint(conf.appwriteUrl)
.setProject(conf.appwriteProjectId);
export const account = new Account(appwriteClient)
export const databases = new Databases(appwriteClient);
const useAuth = () => {
const [loggedInUser, setLoggedInUser] = useState(null);
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const [name, setName] = useState("");
const register = async () => {
try {
await account.create(ID.unique(), email, password, name);
return login(email, password);
} catch (error:any) {
console.log("register error" + error)
}
};
const login = async (email: string, password: string) => {
try {
return await account.createEmailPasswordSession(email, password);
const user = await account.get()
setLoggedInUser(user);
} catch (error:any) {
console.log("login error: " + error)
}
};
const currentuser = async () => {
try {
const user = await account.get()
return user
} catch (error:any) {
console.log("currentUser error: " + error)
}
};
const logout = async () => {
await account.deleteSession("current");
setLoggedInUser(null);
};
return {
register,
login,
logout,
currentuser,
email,
setEmail,
password,
setPassword,
name,
setName,
loggedInUser
};
};
export default useAuth;
i followed the doc
The type being used for loggedInUser is null here: const [loggedInUser, setLoggedInUser] = useState(null);
Try doing this instead:
const [loggedInUser, setLoggedInUser] = useState<User<Preferences> | null>(null);
User & Preferences gives an error, tried searching in the web but its showing that i should import "user" from appwrite but i dont think theres a "user" in the docs
Doing everything in scratch
Try setting the type to <Models.User<Preferences> | null> instead, I think that might how it's being exported from the Appwrite package
Recommended threads
- API key without database.read/write
I had some issues with my previous API key and I deleted it then I wanted to create a new one and discovered the database checkbook has no database.read/write j...
- dynamic key missing scopes for database ...
Here are the scopes listed, I get permission errors for reading row and document. Appears to be missing since last time i checked. Database 6 Scopes policies....
- No server error on selfhosted appwrite
Please help me, my clients is ask what happen on their data? How can i make it up again?