[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
- Update row sheet not loading
After right clicking a row header and click update, the sidebar fails to load (never-ending skeleton)
- DB Relational Table Request
Hi, I'd like to suggest a rewording of the relationships between tables. - Current wording: storeOperatingDays can contain one storeId ...
- Domain is already used. Please try again...
I have a website with where the www.domain.me This website works just fine But if I try to visit domain.me. I get this error. I keep getting sent to some app ri...