#[SOLVED] Permission error

11 messages · Page 1 of 1 (latest)

lament bane
#

try to write to the database, but am getting error

Error creating driver [Error: Error: AppwriteException: Permissions must be one of: (any, guests)]

const createDriverDoc = async (user: DriverUser, userId: string) => {
  try {
    const id = await databases.createDocument(
      DATABASE_ID,
      DRIVER_COLLECTION_ID,
      ID.unique(),
      {
        userId: userId,
        firstName: user.firstName,
        lastName: user.lastName,
        phone: user.phone,
        gender: user.gender,
        email: user.email,
        avatar: user.avatar,
        vehencleType: user.vehencleType,
      },
      [
        Permission.read(Role.any()),
        Permission.write(Role.user(userId)),
        Permission.update(Role.user(userId)),
        Permission.delete(Role.user(userId)),
      ]
    );
    return id;
  } catch (error: any) {
    throw new Error(error);
  }
};
fossil quail
#

If you have write you don't need update and delete. Write is an alias for create/update/delete.

#

How are you initializing your appwrite client?

#

What are the permissions on this collection?

lament bane
# fossil quail What are the permissions on this collection?
import {
  Client,
  Account,
  Databases,
  Functions,
  Storage,
} from "react-native-appwrite";

export const client = new Client()
  .setEndpoint("https://cloud.appwrite.io/v1")
  .setProject("***")
  .setPlatform("***");

export const databases = new Databases(client);
export const account = new Account(client);
export const functions = new Functions(client);
export const storage = new Storage(client);
fossil quail
#

What are the permissions on your collection

lament bane
#

this is the collection permission

fossil quail
#

Do you have any relationships?

lament bane
#

no, no relationships

fossil quail
#

Is the userId you're setting permissions for, the user that is actively logged in? The error means that the user is trying to set permissions for something besides themselves

lament bane