> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # Method name: beforeGet(itemId: string, context: HookContext) # Method package: wixDataHooks # Method menu location: wixDataHooks --> beforeGet # Method Link: https://dev.wix.com/docs/velo/events-service-plugins/data/hooks/wix-data-hooks/before-get.md # Method Description: A hook that is triggered before a `get()` operation. The `beforeGet()` hook runs when the [`get()`](wix-data.html#get) function is called. The hook does not run when the [`find`](wix-data.WixDataQuery.html#find) function is called or when a dataset retrieves items from the collection it is connected to. Return a string or a Promise that resolves to a string from the `beforeGet()` function. The returned string will be used as the `itemId` parameter for the [`get()`](wix-data.html#get) operation. The item with the new `itemId` will be retrieved instead of the item with the original `itemId`. If the returned value is of the wrong type, the value is ignored. A rejected Promise blocks the call to [`get()`](wix-data.html#get) and also calls the [`onFailure()`](#onFailure) hook if it has been registered. Because the `beforeGet()` hook is called before [`get()`](wix-data.html#get) is executed, it can affect which item is retrieved or block the [`get()`](wix-data.html#get). # Method Code Examples: *** Note: do not assume any prop names or enum values other than the ones in the example. ## A beforeGet hook ```javascript // In data.js export function myCollection_beforeGet(itemId, context) { let hookContext = context; // see below // change the item to get return itemId; } /* * hookContext: * * { * "collectionName": "myCollection", * "userId": "f45jf8d2-grkj-2opd-4ovk-9rfj4wo5tvj3", * "userRole": "siteOwner" * } */ ``` ## Change which item is retrieved using a beforeGet hook ```javascript // In data.js export function myCollection_beforeGet(itemId, context) { let hookContext = context; // see below // change the item to get let newItemId = "1234"; return newItemId; } /* * hookContext: * * { * "collectionName": "myCollection", * "userId": "f45jf8d2-grkj-2opd-4ovk-9rfj4wo5tvj3", * "userRole": "siteOwner" * } */ ``` ---