wix-realtime channel publish() and afterInsert data hooks - working in Preview but not Live Site. Permissions issue?

Hi! I am struggling implementing wix-realtime and have been using the tutorial here. (https://www.wix.com/velo/example/real-time-notifications-for-real-estate).

My use case: I have a POST http function set up (it works fine) which inserts data into my collection, dealFeed . When inserting, I use the following options, given I want to trigger a afterInsert hook.

let insert_options = {
“suppressAuth” : true ,
“suppressHooks” : false
};

The data gets inserted into my collection just fine. I then have the following code in data.js for the afterInsert hook:
import { publish } from ‘wix-realtime-backend’ ;
export function dealFeed_afterInsert ( item , context ) {
const channel = { name : “DEALFEED” };
publish ( channel , { message : “New Deal Available” });
return item ;
}

Finally, on my front-end page I have the following code to subscribe to the channel publishes.
import * as realtime from ‘wix-realtime’ ;
$w . onReady ( function () {
const channel = { name : ‘DEALFEED’ };
realtime . subscribe ( channel , newDealAvailable );
}
function newDealAvailable ( { payload }) {
$w ( “#newDealButton” ). show ()
}

My Issue:
The above approach works fine in Preview - when data is inserted into the collection the button appears. However, once publishing to my live site, the above no longer works (I can see data getting inserted, but the button does not appear). I’ve been going in circles on what the issue might be, and my main thought is permissions (give it works in Preview), but I can’t seem to resolve it. I set my collection permissions to the below, but still no luck.

I also tried publishing to the channel via my HTTPs backend after my insert command (i.e. to bypass afterInsert hook API) and it still would only work in Preview but not the live site.

One other thought I had on why this might not be working: can the publish() function be triggered by backend code (i.e. in afterInsert or HTTP function) or only by front-end interactions?

Thanks for your help in advance - hopefully I’m just missing something obvious.