You did not completely understand.
The HOOKs are your possibility to work with connected dataset.
Reconnect it back.
Example:
Somewhere you will have an UPLOAD-BUTTON, which for sure also will be connected to your DATASET.
When you trigger this button, an event will start… → SAVE-EVENT.
$w('#dataset3').onReady(()=>{
$w('#uploadButton').onChange(()=>{
$w("#dataset3").save();});
});
});
The save-event calls the → onBeforeSaveHook() first, before the data gets saved!
So now you called a side-step, where you have time to modify DATA.
But there is still one step or even two steps missing.
Before you start (trigger) the SAVE-process, you first have to get the data of the uploaded file (file-url / pic-url), to be able to set field-value (field-values) with the right data for the current logged-in user.
Or another possibility could be to set a filter onto your dataset, to filter for the current user, but not sure.
A further possibility is to use Wix-Data again, to find the right data for the right user, update the pic and save it back to database.
The most TROUBLEMAKER in every of such usecases, is if it comes to a MIX of working with DATASET and trying to implement your own codings, but still having the wish to use the PROPERTY-PANEL.
ONE MORE TIME…
If you are using a connected dataset, where you already have done some setup inside of the PROPERTY-PANEL (options of the dataset), then you will have to use → HOOKS <----
If you do want to go the CODING way, but still be able to use DATASET, then just remove all setup you have done inside of the DATASET-OPTIONS and also DISCONNECT your DATASET and make sure your DATASET is connected to corresponding DATABASE ONLY (NO USAGE OF PROPERTY_PANEL_OPTIONS).
In this case you will have to code all the steps on your own, but you will have a clear understanding of what you are exactly doing.
Or you completely forget about the DATASET (throw it out of the window) and make completely every step by code —> time-consuming-process!!!