[Solved] Real-time Todo Updates in Appwrite Dashboard - User-Based Subscription Issue
- 1
- Databases
- Web
- Realtime

Hi everyone,
I'm new to Appwrite and currently working on building a Todo web app with user functionality. My goal is to enable real-time updates in the dashboard whenever a user creates a new todo item in their bucket list. Additionally, I want these updates to be reflected across all the devices where the user is logged in.
To achieve this, I'm utilizing the Appwrite real-time subscription feature. Whenever a new document is added to the collection, I subscribe to that specific collection and receive the new data as a payload.
However, I'm encountering a problem where the subscription is triggered for all users whenever a user creates a new document. This means that other users can see the data of the user who created the new document in their logged-in sessions.
Here's the code snippet I'm currently using for the subscription:
const subscribe = useEffect(() => {
const unSubscribe = client.subscribe(
"databases.6471bb9750ced865202e.collections.6471e836bd0fed2289ea.documents",
function (response) {
console.log("real-time data");
console.log(response);
console.log("real-time data");
const updatedTodo = response.payload;
const eventTypeList = Array.isArray(response.events)
? response.events
: [response.events];
if (
eventTypeList.includes("databases.*.collections.*.documents.*.create") &&
updatedTodo.userID === user.$id
) {
setTodos((prevTodos) => [...prevTodos, updatedTodo]);
}
if (
eventTypeList.includes("databases.*.collections.*.documents.*.delete") &&
updatedTodo.userID === user.$id
) {
setTodos((prevTodos) =>
prevTodos.filter((todo) => todo.$id !== updatedTodo.$id)
);
}
}
);
return () => {
unSubscribe();
};
}, []);

Is there a way to modify this code to achieve user-based subscriptions? I want the subscription to be specific to the current user, so that only their updates are received and displayed in their own session.

You can see in this video to understand the issue more precisely


What permissions do you have on your collection?

I solved this issue, we should give the permissions for write in document level instead of collection level.

[Solved] Real-time Todo Updates in Appwrite Dashboard - User-Based Subscription Issue

Hi @Sam, I also have an issue quite related. When I subscribe to the documents channel, I get a response when an event happens in the documents but my application still doesn’t update in real time. I’m unsure to make the update happen in real time. Any help?

It would be best to create a new post in <#1072905050399191082> and include your code

Okay thanks
Recommended threads
- Stuck in "deleting"
my parent element have relationship that doesnt exist and its stuck in "deleting", i cant delete it gives me error: Collection with the requested ID could not b...
- Help with 409 Error on Relationship Setu...
I ran into a 409 document_already_exists issue. with AppWrite so I tried to debug. Here's what I've set up: Collection A has 3 attributes and a two-way 1-to-m...
- Database Double Requesting Error.
I am getting error for creating new document in an collection with new ID.unique() then too getting error of existing document. When button is pressed one docum...
