You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: client-sdk-references/javascript-web/javascript-orm/drizzle.mdx
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -299,5 +299,5 @@ For watched queries with Drizzle it's recommended to use the `watch()` function
299
299
300
300
### Table Constraint Restrictions
301
301
302
-
The Drizzle ORM relies on the underlyng PowerSync table definitions which are subject to certain limitations.
302
+
The Drizzle ORM relies on the underlying PowerSync table definitions which are subject to certain limitations.
303
303
This means that most Drizzle [constraint features](https://orm.drizzle.team/docs/indexes-constraints) (such as cascading deletes, foreign checks, unique) are currently not supported.
Copy file name to clipboardExpand all lines: integration-guides/flutterflow-+-powersync/powersync-+-flutterflow-legacy.mdx
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -174,7 +174,7 @@ For once, a blank screen means success:
174
174
<img src="/images/integration-32.avif"/>
175
175
</Frame>
176
176
5. Under **"Action Settings"** on the right, add this dependency into "Pubspec Dependencies": `powersync: ^1.8.4`
177
-
1. FlutterFlow imports and old version of sqflite by default and it's not possible to remove it, so you also need to add this dependency: `sqflite: ^2.3.3`
177
+
1. FlutterFlow imports an old version of sqflite by default and it's not possible to remove it, so you also need to add this dependency: `sqflite: ^2.3.3`
The current version of the [To-Do List demo app](https://github.com/powersync-ja/powersync-js/tree/main/demos/react-native-supabase-todolist) implements a `PhotoAttachmentQueue` class which
11
-
enables photo attachments (specifially a `jpeg`) to be synced. This tutorial will guide you on the changes needed to support PDF attachments.
11
+
enables photo attachments (specifically a `jpeg`) to be synced. This tutorial will guide you on the changes needed to support PDF attachments.
12
12
13
13
An overview of the required changes are:
14
14
1. Update the app schema by adding a `pdf_id` column to the todos table to link a pdf to a to-do item.
Copy file name to clipboardExpand all lines: usage/use-case-examples/infinite-scrolling.mdx
+13-13Lines changed: 13 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -13,35 +13,35 @@ PowerSync currently [performs well](/resources/performance-and-limits) with sync
13
13
14
14
This means that in many cases, you can sync a sufficient amount of data to let a user keep scrolling a list or feed that basically feels "infinite" to them.
| It works offline and is low-latency (data loads quickly from the local database). We don't need to load data from the backend via the network when the user reaches the bottom of the page/feed/list. | There will be cases where this approach won't work because the total volume of data might become too large for the local database, for example:There's a wide range of tables that the user needs to be able to infinite scrollYour app allows the user to apply filters to the displayed data, which results in fewer pages displayed from a large dataset, and therefore limited scrolling. |
| It works offline and is low-latency (data loads quickly from the local database). We don't need to load data from the backend via the network when the user reaches the bottom of the page/feed/list. | There will be cases where this approach won't work because the total volume of data might become too large for the local database - for example, when there's a wide range of tables that the user needs to be able to infinite scroll. Your app allows the user to apply filters to the displayed data, which results in fewer pages displayed from a large dataset, and therefore limited scrolling. |
19
19
20
20
### 2) Control data sync using client parameters
21
21
22
22
PowerSync supports the use of [client parameters](/usage/sync-rules/advanced-topics/client-parameters) which are specified directly by the client (i.e. not only through the [authentication token](/installation/authentication-setup/custom)). The app can dynamically change these parameters on the client-side and they can be accessed in sync rules on the server-side. The developer can use these parameters to limit/control which data is synced, but since they are not trusted (because they are not passed via the JWT authentication token) they should not be used for access control. You should still filter data by e.g. user ID for access control purposes (using [token parameters](/usage/sync-rules/parameter-queries) from the JWT).
23
23
24
24
Usage example: To lazy-load/lazy-sync data for infinite scrolling, you could split your data into 'pages' and use a client parameter to specify which pages to sync to a user.
| Does not require updating flags in your backend database. Enables client-side control over what data is synced. | We can only sync additional data when the user is online.There will be latency while the user waits for the additional data to sync. |
| Does not require updating flags in your backend database. Enables client-side control over what data is synced. | We can only sync additional data when the user is online.There will be latency while the user waits for the additional data to sync. |
29
29
30
30
### 3) Sync limited data and then load more data from an API
31
31
32
-
In this scenario we can sync a smaller number of rows to the user initially. And then if the user reaches the end of the page/feed/list, we make an online API call to load additional data from the backend to display to the user.
32
+
In this scenario we can sync a smaller number of rows to the user initially. If the user reaches the end of the page/feed/list, we make an online API call to load additional data from the backend to display to the user.
| This requires syncing less data to each user, which will result in a faster initial sync time. | We can only load additional data when the user is online.There will be some latency to load the additional data (similar to a cloud-first app making API calls)In your app code, records loaded from the API will have to be treated differently from the records loaded from the local SQLite database. |
| This requires syncing less data to each user, which will result in a faster initial sync time. | We can only load additional data when the user is online.There will be some latency to load the additional data (similar to a cloud-first app making API calls). In your app code, records loaded from the API will have to be treated differently from the records loaded from the local SQLite database. |
37
37
38
38
### 4) Client-side triggers a server-side function to flag data to sync
39
39
40
40
You could add a flag to certain records in your backend database which are used by your [Sync Rules](/usage/sync-rules) to determine which records to sync to specific users. Then your app could make an API call which triggers a function that updates the flags on certain records, causing more records to be synced to the user.
| This requires syncing less data to each user, which will result in a faster initial sync time. | We can only perform the trigger and sync additional data when the user is online.There will be higher latency: Both for the API call to update the flags, and for syncing the additional dataWe do not necessarily recommend going this route: There's higher latency and it's not a particularly elegant architecture. |
| This requires syncing less data to each user, which will result in a faster initial sync time. | We can only perform the trigger and sync additional data when the user is online.There will be higher latency: Both for the API call to update the flags, and for syncing the additional data. We do not necessarily recommend going this route: There's higher latency and it's not a particularly elegant architecture. |
0 commit comments