[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
- Query params are way too limiting in ter...
I was trying to list rows in a table that do not already exist in another table. I retrieved around 260 row IDs which are 13 characters in length each, and then...
- [Node.js SDK] Bypass 2GB file limit?
Hello. Using either InputFile.fromPath or InputFile.fromBuffer throws this error: File size (2295467305) is greater than 2 GiB Bucket limit etc. is setup corre...
- Relationship null, even when relationshi...
Hi Everyone, im experiencing issues with set relation data. When im setting the document id from the related database most of them seem fine, except one table. ...
