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: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,7 +47,7 @@ If you are using GitHub pages for hosting, this command is a convenient way to b
47
47
We truly appreciate your interest in this project!
48
48
This project is **community-maintained**, which means it's **not officially supported** by our support team.
49
49
50
-
If you need help, have found a bug, or want to contribute improvements, the best place to do that is right here — by [opening a GitHub issue](https://github.com/Couchbase-Ecosystem/cbl-reactnative-docs/issues).
50
+
If you need help, have found a bug, or want to contribute improvements, the best place to do that is right here - by [opening a GitHub issue](https://github.com/couchbase/cbl-reactnative-docs/issues).
51
51
Our support portal is unable to assist with requests related to this project, so we kindly ask that all inquiries stay within GitHub.
52
52
53
-
Your collaboration helps us all move forward together — thank you!
53
+
Your collaboration helps us all move forward together - thank you!
> Description - _Quick reference for customer-facing changes in @couchbase/couchbase-lite-react-native version 1.1_
9
+
> Related Content - [Release Notes](../../ProductNotes/release-notes.md) | [Using Logs](../../Troubleshooting/using-logs.md)
10
+
11
+
## At a Glance
12
+
13
+
Version 1.1 is focused on React Native New Architecture support and better troubleshooting:
14
+
15
+
1.**TurboModules** - iOS and Android modules now support the React Native New Architecture.
16
+
2.**Improved file logging** - React Native wrapper diagnostics can be written to file and custom log sinks.
17
+
3.**LogSinks.write()** - application code can write messages into configured Couchbase Lite log sinks.
18
+
4.**Reliability fixes** - listener cleanup, document expiration, and conflict-aware deletes are improved.
19
+
5.**Official npm package** - published as `@couchbase/couchbase-lite-react-native`, replacing the legacy `cbl-reactnative` package.
20
+
21
+
## NPM Package Rename
22
+
23
+
Version 1.1 is published on npm as [`@couchbase/couchbase-lite-react-native`](https://www.npmjs.com/package/@couchbase/couchbase-lite-react-native). The legacy unscoped package `cbl-reactnative` (1.0.1 and earlier) is superseded. New installs and upgrades should use the scoped package.
24
+
25
+
| What to update | Before (`cbl-reactnative`) | After (`@couchbase/couchbase-lite-react-native`) |
Version 1.1 supports [React Native New Architecture](https://reactnative.dev/architecture/overview) through TurboModules. Existing application-level Couchbase Lite APIs remain largely compatible, but New Architecture should be enabled to use the TurboModule implementation.
42
+
43
+
For Expo development builds, enable New Architecture in `app.json`:
44
+
45
+
```json
46
+
{
47
+
"expo": {
48
+
"newArchEnabled": true
49
+
}
50
+
}
51
+
```
52
+
53
+
For React Native Android projects, make sure `newArchEnabled=true` is set in the Android project configuration.
54
+
55
+
## Logging Changes
56
+
57
+
### React Native Logs in File and Custom Sinks
58
+
59
+
When a file or custom log sink is enabled, version 1.1 can forward React Native wrapper diagnostics into the same logging pipeline as native Couchbase Lite logs.
60
+
61
+
React Native-originated lines are prefixed with `RN`:
62
+
63
+
```text
64
+
RN ::DEBUG:: database_Open
65
+
RN ::WARNING:: query_RemoveChangeListener rejected: no listener for token
66
+
RN ::ERROR:: collection_Save failed
67
+
```
68
+
69
+
This helps diagnose issues that cross the JavaScript/native boundary while keeping sensitive payloads out of forwarded logs.
70
+
71
+
### Writing Application Logs
72
+
73
+
Use `LogSinks.write()` to write application messages into configured Couchbase Lite sinks:
Copy file name to clipboardExpand all lines: docs/ProductNotes/compatibility.md
+5-1Lines changed: 5 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,11 @@ sidebar_position: 2
9
9
Supported iOS and Android versions are dependent on React Native. See the [React Native Documentation](https://github.com/reactwg/react-native-releases/blob/main/docs/support.md) documentation for more information.
10
10
:::
11
11
12
-
The cbl-reactnative library is build against the native SDK for iOS and Android. The current version of the native SDK is 3.2.0. To see the compatibility notes for the native SDK, see the following documentation:
12
+
The @couchbase/couchbase-lite-react-native library is built against Couchbase Lite Enterprise for iOS and Android. Version 1.1 uses Couchbase Lite Android Enterprise 3.3.3 and Couchbase Lite Swift Enterprise 3.3.3.
13
+
14
+
Version 1.1 supports [React Native New Architecture](https://reactnative.dev/architecture/overview) through TurboModules. Apps should use React Native 0.76.3 or higher and enable New Architecture for the TurboModule path.
15
+
16
+
To see the compatibility notes for the native SDK, see the following documentation:
13
17
14
18
-[Couchbase Mobile Compatibility Guide - iOS](https://docs.couchbase.com/couchbase-lite/current/swift/supported-os.html).
- Enable React Native New Architecture to use the TurboModule implementation.
34
+
- Review logging setup if you want React Native wrapper logs included in file or custom log sinks.
35
+
36
+
See [Migration Guide](../Guides/Migration/v1.1.md) for detailed instructions.
37
+
38
+
---
39
+
8
40
**1.0.0** (December 2025)
9
41
10
42
New Features:
@@ -46,14 +78,14 @@ See [Migration Guide](../Guides/Migration/v1.md) for detailed instructions.
46
78
---
47
79
48
80
**0.6.3**
49
-
- Array handling and improve blob data validation in DataAdapter [null-pointer issue](https://github.com/Couchbase-Ecosystem/cbl-reactnative/pull/73)
81
+
- Array handling and improve blob data validation in DataAdapter [null-pointer issue](https://github.com/couchbase/couchbase-lite-react-native/pull/73)
50
82
- Fix a crash caused by improper handling of encryption key
51
83
52
84
**0.6.1**
53
-
- Implemented [Collection Change Listeners](https://github.com/Couchbase-Ecosystem/cbl-reactnative/pull/54) on Android
54
-
- Implemented [Query Change Listeners](https://github.com/Couchbase-Ecosystem/cbl-reactnative/pull/55) on Android
85
+
- Implemented [Collection Change Listeners](https://github.com/couchbase/couchbase-lite-react-native/pull/54) on Android
86
+
- Implemented [Query Change Listeners](https://github.com/couchbase/couchbase-lite-react-native/pull/55) on Android
55
87
- Fixed data adapter issues and improved testing
56
-
- Fixed [issue](https://github.com/Couchbase-Ecosystem/cbl-reactnative/issues/38) related to collection `getDocument` always pulling blob content
88
+
- Fixed [issue](https://github.com/couchbase/couchbase-lite-react-native/issues/38) related to collection `getDocument` always pulling blob content
Copy file name to clipboardExpand all lines: docs/Queries/live-queries.md
+8-4Lines changed: 8 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ sidebar_position: 6
10
10
11
11
## Activating a Live Query
12
12
13
-
A live query is a query that, once activated, remains active and monitors the database for changes; refreshing the result set whenever a change occurs. As such, it is a great way to build reactive user interfaces — especially table/list views — that keep themselves up to date.
13
+
A live query is a query that, once activated, remains active and monitors the database for changes; refreshing the result set whenever a change occurs. As such, it is a great way to build reactive user interfaces - especially table/list views - that keep themselves up to date.
14
14
15
15
**So, a simple use case may be:** A replicator running and pulling new data from a server, whilst a live-query-driven UI automatically updates to show the data without the user having to manually refresh. This helps your app feel quick and responsive.
16
16
@@ -23,7 +23,7 @@ Each time you start watching a live query, the query is executed and an initial
23
23
#### Example 1. Starting a Live Query - Change Listener
Change listeners now return a `ListenerToken` object with a `remove()` method for cleanup.
45
45
:::
46
46
47
+
:::note Version 1.1
48
+
Live query listeners use the TurboModule typed event path on New Architecture builds. This improves listener routing and cleanup consistency across iOS and Android.
49
+
:::
50
+
47
51
#### Example 2. Stopping a Live Query - Change Listener
48
52
49
53
```typescript
@@ -78,7 +82,7 @@ interface QueryChange {
78
82
#### Example 3. Complete Live Query with Error Handling
The output from explain() remains the same whether invoked by an app, or cblite — see [Example 3](#example-3-queryexplain-output) for an example of how it looks.
45
+
The output from explain() remains the same whether invoked by an app, or cblite - see [Example 3](#example-3-queryexplain-output) for an example of how it looks.
46
46
47
47
#### Example 3. Query.explain() Output
48
48
@@ -66,7 +66,7 @@ This output ([Example 3](#example-3-queryexplain-output)) comprises three main e
66
66
67
67
### Format
68
68
69
-
The query plan section of the output displays a tabular form of the translated query's execution plan. It primarily shows how the data will be retrieved and, where appropriate, how it will be sorted for navigation and-or presentation purposes. For more on SQLite's Explain Query Plan — see: https://www.sqlite.org/eqp.html.
69
+
The query plan section of the output displays a tabular form of the translated query's execution plan. It primarily shows how the data will be retrieved and, where appropriate, how it will be sorted for navigation and-or presentation purposes. For more on SQLite's Explain Query Plan - see: https://www.sqlite.org/eqp.html.
70
70
71
71
#### Example 4. A Query Plan
72
72
@@ -76,22 +76,22 @@ The query plan section of the output displays a tabular form of the translated q
76
76
52|0|0| USE TEMP B-TREE FOR ORDER BY
77
77
```
78
78
79
-
1. **Retrieval method**— This line shows the retrieval method being used for
79
+
1. **Retrieval method**- This line shows the retrieval method being used for
80
80
the query; here a sequential read of the database. Something you may well be
81
-
looking to optimize — see [Retrieval Method](#retrieval-method) for more.
81
+
looking to optimize - see [Retrieval Method](#retrieval-method) for more.
82
82
2. **Grouping method** --- This line shows that the `GROUP BY` clause used in
83
83
the query requires the data to be sorted and that a b-tree will be used for
84
-
temporary storage — see [Order and Group](#order-and-group).
85
-
3. **Ordering method**— This line shows that the `ORDER BY` clause used in the
84
+
temporary storage - see [Order and Group](#order-and-group).
85
+
3. **Ordering method**- This line shows that the `ORDER BY` clause used in the
86
86
query requires the data to be sorted and that a b-tree will be used for
87
-
temporary storage — see [Order and Group](#order-and-group).
87
+
temporary storage - see [Order and Group](#order-and-group).
88
88
89
89
### Retrieval Method {#retrieval-method}
90
90
91
91
The query optimizer will attempt to retrieve the requested data items as
92
92
efficiently as possible, which generally will be by using one or more of the
93
93
available indexes. The retrieval method shows the approach decided upon by the
94
-
optimizer — see [Table 1](#).
94
+
optimizer - see [Table 1](#).
95
95
96
96
#### Table 1. Retrieval Methods
97
97
@@ -104,7 +104,7 @@ optimizer — see [Table 1](#).
104
104
When looking to optimize a query's retrieval method, consider whether:
105
105
106
106
- Providing an additional index makes sense.
107
-
- You could use an existing index — perhaps by restructuring the query to
107
+
- You could use an existing index - perhaps by restructuring the query to
108
108
minimize wildcard use, or the reliance on functions that modify the query's
109
109
interpretation of index keys (for example, 'lower').
110
110
- You could reduce the data set being requested to minimize the query's
@@ -164,14 +164,14 @@ after certain events, such as:
164
164
- On a database close
165
165
- When running a database compact.
166
166
167
-
So, if your analysis of the [Query Explain output](#example-3) indicates a
167
+
So, if your analysis of the [Query Explain output](#example-3-queryexplain-output) indicates a
168
168
sub-optimal query and your rewrites fail to sufficiently optimize it, consider
169
169
compacting the database. Then re-generate the Query Explain and note any
170
170
improvements in optimization. They may not, in themselves, resolve the issue
171
171
entirely; but they can provide a uesful guide toward further optimizing changes
172
172
you could make.
173
173
174
-
## Wildcard and Like-based Queries
174
+
## Wildcard and Like-based Queries {#wildcard-queries}
175
175
176
176
Like-based searches can use the index(es) only if:
177
177
@@ -188,7 +188,7 @@ query plan decides on a retrieval method of `SCAN TABLE`.
188
188
189
189
:::tip
190
190
191
-
For more on indexes — see: [Indexing](../indexes.md).
191
+
For more on indexes - see: [Indexing](../indexes.md).
192
192
193
193
:::
194
194
@@ -323,5 +323,5 @@ for your next batch and-so-on.
323
323
Optimize document size in design. Smaller documents load more quickly. Break
324
324
your data into logical linked units.
325
325
326
-
Consider Using Full Text Search instead of complex `LIKE` or `REGEX` patterns —
326
+
Consider Using Full Text Search instead of complex `LIKE` or `REGEX` patterns -
0 commit comments