Hello,
Absolute beginner in Appwrite here, so I would like to know how to implement this using Appwrite, or if it's even possible to use Appwrite in this case.
My project is an app that is offline first and that is multi-user.
The problem situation is the following:
- User A downloads some documents from the server, then goes offline.
- User B edits a document and uploads the document to the server.
- User A, still offline, edits the same document user B had changed.
- User A goes online and sends the document to the server, overwriting without notice the changes User A had done.
The solution I have in mind is:
- The server, when receives a document from a client, checks if the updated_at field of the received document is equal to the updated_at field of the document in the server database. Please notice that the client don't change this field. It's the timestamp of the last time the server received this document.
- If both timestamps are different, it means some other user changed the document while the user submitting the document was offline. The submitting user then receives a warning and may choose between some options what to do.
How can I get this with Appwrite?
You’d probably have to implement those checks in a Function, or something - so when uploading, instead of going direct to the Database, you’d pass the data to a Function, which would then either update that in the DB, or respond with an error.
Recommended threads
- Attributes Confusion
```import 'package:appwrite/models.dart'; class OrdersModel { String id, email, name, phone, status, user_id, address; int discount, total, created_at; L...
- I recently applied for the free plan und...
I recently applied for the free plan under the GitHub Student Developer Pack. However, my billing status still shows $15, and it mentions that this amount will ...
- How to Avoid Double Requests in function...
I'm currently using Appwrite's `functions.createExecution` in my project. I want to avoid double requests when multiple actions (like searching or pagination) a...