Server Actions are a way to perform server-side mutations in the Next.js App Router. In this lesson, we create a <NewTweet />
component that renders a form for the user to enter a new tweet. This form is submitted to a Server Action, which writes this data to Supabase.
Additionally, we create a Server Action Supabase client and call the getUser
function to fetch the currently signed in user.
Lastly, we write a Row Level Security (RLS) policy to enable the insert
action for authenticated
users.
Posting form to Server Action
export default function NewTweet() {
const addTweet = async () => {
"use server";
};
return <form action={addTweet}>...</form>;
}
Create Supabase client in Server Action
const supabase = createServerActionClient<Database>({ cookies });
Get user from Supabase client
const {
data: { user },
} = await supabase.auth.getUser();
Insert tweet with Supabase
await supabase.from("tweets").insert({...});