Can anyone explain why the realtime feature not working here:
const initializeAppwrite = async () => {
// Only run in browser environment
try {
const { client, databases } = await createClient(sessionSecret);
if (!client || !databases) return;
setClient(client);
setDatabases(databases);
// Fetch conversations
const response = await databases.listDocuments(
DATABASE_ID,
CONVERSATION_COLLECTION,
[
Query.or([
Query.equal("clientId", currentUserId),
Query.equal("freelancerId", currentUserId),
]),
Query.orderDesc("$updatedAt"),
]
);
/*Skipped code*/
unsubscribe = client.subscribe(
`databases.${DATABASE_ID}.collections.${CONVERSATION_COLLECTION}.documents`,
(response) => {
// Handle realtime updates
if (
response.events.includes(
"databases.*.collections.*.documents.*.create"
)
) {
enhanceConversation(response.payload).then((enhancedConv) => {
setConversations((prev) => [enhancedConv, ...prev]);
});
}
if (
response.events.includes(
"databases.*.collections.*.documents.*.update"
)
) {
console.log(response.payload);
enhanceConversation(response.payload).then((enhancedConv) => {
setConversations((prev) => [
enhancedConv,
...prev.filter((conv) => conv.$id !== enhancedConv.$id),
]);
});
}
}
);
setLoading(false);
return () => {
unsubscribe();
};
} catch (error) {
setError(error.message);
setLoading(false);
}
};
initializeAppwrite();
}, [sessionSecret, currentUserId]);