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
- Anonymous Sessions using Node SDKs
I am attempting to use anonymous sessions with the Node SDK but I have simply no idea how to persist the session to a cookie, pass it to the session client, etc...
- Auth working for emulator but not for ph...
hey guys i'm using appwrite for expo react native it is working perfectly for emulator but does not working for physical devices can u explain any one and it is...
- unlike any other provider, your sites DN...
your nameservers dont work with a funny little CNAME error, which is a weird bug but thats what you get when you try to be the kitchen sink, funny errors.