@117 wrote:
Can I do indexing on the properties of json objects that are stored in the array and will it make sense ?
Posts: 2
Participants: 2
@117 wrote:
Can I do indexing on the properties of json objects that are stored in the array and will it make sense ?
Posts: 2
Participants: 2
@paulr wrote:
I have a weird issue that combines sync, live query and changing a channel.
TLDR: I have data where I change only the channel, and in certain specific circumstances, that change will not be detected by a live query.
Its a little complex - I’m going to try to make this short and clear.
I have an app that runs on mac and iOS. I used channels a lot to segment and share data.
If I have my app using the same account running on two instances (so the same set of channels), and I move a piece of data from one channel to another… everything works. The change is detected at the other end and the data disappears (if my live query is monitoring the source channel) or appears (if my live query is monitoring the destination channel). Note that by “move”, I mean changing the channels array.However, if the two instances are using a different account so they have a different set of channels but one of those channels is shared, then the following happens:
- if on InstanceA I move data from a non-shared channel to a shared channel, then the live query on InstanceB which is monitoring the shared channel sees that change and reacts (shows new data).
- if on InstanceA I move data from the shared channel to a non shared channel, then the live query on InstanceB which is monitoring the shared channel does not see that change.
InstanceB should react because the live query result set changes (there is 1 less row of data). It does not.
I can see my app perform a sync - I have a “syncing” indicator and as soon as I change the data’s channel on instanceA, both instances of the app do some syncing.
I monitor the actual .cblite2 database, and I can see the row disappear from InstanceB, which is correct because it no longer exists in the channels InstanceB has access to.
This happens both ways - that is InstanceA and B react the same whether either or both are Mac/iOS.
Here is the live query instantiation. Note that the section_id is a subset or grouping of data in a channel. If I change ONLY the section_id and keep the channel the same, everything works. If I change the channel and section id, then the above error occurs. The key is to move data so that it is no longer local.
liveQuery = QueryBuilder.Select(SelectResult.Expression(Meta.ID), SelectResult.Property("section_id"), SelectResult.Expression(Meta.Sequence)) .From(DataSource.Database(DB.Instance.database)) .Where(Expression.Property("type") .EqualTo(Expression.String("Notes")) .And(Expression.Property("section_id") .EqualTo(Expression.String(currentSectionId)))); handlerToken = liveQuery.AddChangeListener(UpdateNotes);
I’ve been experimenting with different SelectResults to see if that helps, including SelectResult.All(). That hasn’t helped.
(Side question - can I simply do a live query and Select the ID and Sequence number. That should catch any change, right?).
Any pointers as to my mistake would be most appreciated.
Thx.
Paul.
Posts: 1
Participants: 1
@newbee wrote:
I’m trying to Update a specific document with attachment, but the blob attached remains the same after update. I already pull the specific document and update it using
MutableDocument mutableDocument = database.getDocument(data.get("docId").toString()).toMutable();
then set the new blobmutableDocument.setBlob("profilePic", (Blob) data.get("profilePic"));
. Finally using the replicator I pushed it in the server.Here’s some snap. The old images is still the one loaded even after update.
Posts: 2
Participants: 2
@newuser wrote:
Hi,
I am totally new to Couchbase but have to take over an application that includes both a mobile client and a web client. The app uses outdated Couchbase server (couchbase-server-enterprise_4.5.0) and sync gateway (sync-gateway-enterprise_1.4.0-2) software. The previous owner of the project is no longer reachable, and did not have any documentation whatsoever, so I have had to learn everything myself.
So, I want to update the server and sync gateway software to the latest releases, specifically server 6.0.x and sync gateway 2.6. One big issue I face is the bucket shadowing feature has been deprecated, and I do not fully understand the Mobile-Web Data Sync migration instructions here https://docs.couchbase.com/sync-gateway/current/shared-bucket-access.html#migrating-from-bucket-shadowing. Specifically, I am not sure which of my buckets correspond to bucket 1 and bucket 2 in the instructions.
I will describe below my current understanding of the my app, and then hopefully you can help me map it to the instructions.
I really really appreciate any help at all! Thanks!
- I see from the Couchbase admin interface that the app has two buckets: the
my_app
bucket and thesync_gateway
bucket.- The web client is a rails application that talks to the Couchbase server on port 8091. Here’s the config snippet:
common: &common hostname: localhost port: 8091 ... pool: default production: <<: *common bucket: my_app
I believe that means that the web client talks to the Couchbase server directly without going through the sync gateway.
- The Android client does this:
import com.couchbase.lite.Database; import com.couchbase.lite.replicator.Replication; import com.couchbase.lite.Manager; ... Database database = manager.getDatabase("sync-gateway"); // yes, it's "-" not "_" between sync and gateway URL sync_url = new URL("http://<hostname>:4984/my_app/"); Replication PULL_replication = database.createPullReplication(sync_url); Replication PUSH_replication = database.createPushReplication(sync_url);
And the sync gateway has configuration sync_gateway.json like this (only showing relevant bits):
{ "interface":":4984", "databases": { "my_app": { "server":"http://localhost:8091", "bucket":"sync_gateway", "shadow": { "server":"http://localhost:8091", "bucket":"my_app" } } } }
- It seems that the sync is not happening/configured properly, because in the backup dump of the database, I see the sync_gateway bucket is 40 times larger than the my_app bucket:
$ du -hs bucket-sync_gateway bucket-my_app 422M bucket-sync_gateway 9.8M bucket-my_app $
The Android app does store photos into the database, so it looks like all the photos and data written by the mobile clients go into the sync_gateway bucket without being synced to the my_app bucket?
Posts: 1
Participants: 1
@paolo.morgano wrote:
I’m trying to use LargeDatasetGenerator from couchbaselabs/ couchbase-mobile-tools repo.
Does anyone can share some usage example? I’ve been able to build and run it, also generating data from plain json works out of the box, but I’m unable to understand how to use mustache-like template to generate different data in each document.
Posts: 4
Participants: 2
@blimkemann wrote:
I just updated my app to Xamarin Forms 4.3.0.908675 and as of today 4.4.0.991265 as well as targeting Android Q.
Now, a pull replication I have crashes the entire Android app after a few seconds. The replication starts and then fails at the same point on every emulator (LogCat information below). The exact same code runs perfectly on iOS and UWP.Note also that based on reading other posts, that I tried changing it to PullAndPush as well and the same crash happens at the same place.
Also of note is that I am using ws: (not wss:) and thus have a network_security_config.xml file allowing clear traffic for that domain.
<?xml version="1.0" encoding="utf-8" ?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">api.mydomain.com</domain> </domain-config> </network-security-config>
Any thoughts?
12-12 08:15:35.304: A/DEBUG(5711): Build fingerprint: ‘google/sdk_gphone_x86_64/generic_x86_64:9/PSR1.180720.075/5124027:user/release-keys’
12-12 08:15:35.304: A/DEBUG(5711): Revision: ‘0’
12-12 08:15:35.304: A/DEBUG(5711): ABI: ‘x86_64’
12-12 08:15:35.304: A/DEBUG(5711): pid: 4360, tid: 4615, name: Thread-13 >>> com.redbook.mobile <<<
12-12 08:15:35.304: A/DEBUG(5711): signal 11 (SIGSEGV), code 128 (SI_KERNEL), fault addr 0x0
12-12 08:15:35.304: A/DEBUG(5711): rax b998b563ce88771c rbx 0000798075d21b70 rcx 0000000000000007 rdx 0000798077c00000
12-12 08:15:35.304: A/DEBUG(5711): r8 ffffffffffffffc0 r9 000000000000000d r10 0000798075d30d88 r11 0000798075e00000
12-12 08:15:35.304: A/DEBUG(5711): r12 0000798072ed62c0 r13 0000798073431a78 r14 0000798075d21b78 r15 0000798075dff900
12-12 08:15:35.304: A/DEBUG(5711): rdi 0000798075d30d88 rsi 0000798077de9040
12-12 08:15:35.304: A/DEBUG(5711): rbp 0000798076e5eec8 rsp 0000798072ed6280 rip 000079807326a76e
12-12 08:15:35.311: A/DEBUG(5711): backtrace:
12-12 08:15:35.311: A/DEBUG(5711): #00 pc 000000000029576e /data/app/com.redbook.mobile-zO38OojZM_ZeFK7S2sh5Zg==/lib/x86_64/libLiteCore.so (std::__ndk1::__tree<std::__ndk1::__value_type<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator>, bool>, std::__ndk1::function<void (litecore::blip::MessageIn*)>>, std::__ndk1::__map_value_compare<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator>, bool>, std::__ndk1::__map_valu
12-12 08:15:35.311: A/DEBUG(5711): #01 pc 000000000029540f /data/app/com.redbook.mobile-zO38OojZM_ZeFK7S2sh5Zg==/lib/x86_64/libLiteCore.so (litecore::blip::BLIPIO::_closed(litecore::websocket::CloseStatus)+321)
12-12 08:15:35.311: A/DEBUG(5711): #02 pc 0000000000295601 /data/app/com.redbook.mobile-zO38OojZM_ZeFK7S2sh5Zg==/lib/x86_64/libLiteCore.so (ZNSt6__ndk128__invoke_void_return_wrapperIvE6__callIJRNS_6__bindIRMN8litecore4blip6BLIPIOEFvNS4_9websocket11CloseStatusEEJPS6_RS8_EEEEEEvDpOT+59)
12-12 08:15:35.311: A/DEBUG(5711): #03 pc 000000000029d200 /data/app/com.redbook.mobile-zO38OojZM_ZeFK7S2sh5Zg==/lib/x86_64/libLiteCore.so (litecore::actor::ThreadedMailbox::safelyCall(std::__ndk1::function<void ()> const&) const+14)
12-12 08:15:35.311: A/DEBUG(5711): #04 pc 000000000029d398 /data/app/com.redbook.mobile-zO38OojZM_ZeFK7S2sh5Zg==/lib/x86_64/libLiteCore.so
12-12 08:15:35.311: A/DEBUG(5711): #05 pc 000000000029ce3f /data/app/com.redbook.mobile-zO38OojZM_ZeFK7S2sh5Zg==/lib/x86_64/libLiteCore.so (litecore::actor::ThreadedMailbox::performNextMessage()+75)
12-12 08:15:35.311: A/DEBUG(5711): #06 pc 000000000029cd7d /data/app/com.redbook.mobile-zO38OojZM_ZeFK7S2sh5Zg==/lib/x86_64/libLiteCore.so (litecore::actor::Scheduler::task(unsigned int)+109)
12-12 08:15:35.311: A/DEBUG(5711): #07 pc 000000000029d291 /data/app/com.redbook.mobile-zO38OojZM_ZeFK7S2sh5Zg==/lib/x86_64/libLiteCore.so
12-12 08:15:35.311: A/DEBUG(5711): #08 pc 0000000000092bab /system/lib64/libc.so (__pthread_start(void*)+27)
12-12 08:15:35.311: A/DEBUG(5711): #09 pc 000000000002af2d /system/lib64/libc.so (__start_thread+61)
Posts: 3
Participants: 2
@benjamin_glatzeder wrote:
SG 2.6 (Couchbase Sync Gateway/2.6.0(127;b4c828d) CE)
Ubuntu 16.04
CBL 2.6
AndroidThis issue might be related to CBL 2.6: Does SG need more RAM? Initially only? and a fix might be in the next release, see post #9 in the same thread.
Attached are the goroutines at the time of the crash. The first goroutine (…20_28_33) is when a user crashed the SG. Second goroutine was me by testing the oneshot push replication (i.e. signing in to an account the first time). Heap and goroutine are downloaded and stored automatically as soon as the SG crashes/hangs. Then it’s restarted.
This issue is reproducible on my production cluster! It worked on my dev cluster - a lot less powerful, single user only. Production cluster might have around 200 concurrent sync users. So not too many. There is lots of unallocated RAM and IDLE compute resources available. Prod and dev have the same software installed.
Is this issue related to my other post?
Thanks!
(By SG crash I mean that all connected Android clients show the replication status BUSY. No changes are synced until the SG service is restarted.)
goroutine-2019_12_12___20_28_33.zip (6.1 KB) goroutine-2019_12_12___21_44_28.zip (6.6 KB)
Posts: 2
Participants: 1
@Pio wrote:
Hi,
we are using an ORM library in our web application which is storing the document IDs in a specific format like “objecttype::123456abcdef”.
Now we want our mobile apps (Android and iOS) to generate/store the document IDs in the same way. Is that possible? Currently the mobile sdk is generating the IDs only in that way “123456abcdef”. Can we define the format the Android/iOS SDKs are generating the IDs? Or can I pregenerate them on my own? But how do I ensure uniqueness?
Thanks, Pio
Posts: 2
Participants: 2
@victorberger wrote:
Hello,
I am attempting to upgrade my existing service to use SSL for secure connections/replications.
When I try to connect to my endpoint of format “wss://xxx.com/bucket”, I receive an error message as follows:
17:39:52.154681| [WS]: {BuiltInWebSocket#109}==> litecore::websocket::BuiltInWebSocket wss://xxx.com:443/bucket/_blipsync @0x7fd691d050d017:39:52.154715| [WS] WARNING: {BuiltInWebSocket#109} Unexpected or unclean socket disconnect! (reason=WebSocket status, code=1002) 17:39:52.154852| [Sync]: {Repl#107} Connection closed with WebSocket status 1002: "Server failed to upgrade connection" (state=1) 17:39:52.154907| [Sync] ERROR: {Repl#107} Got LiteCore error: WebSocket error 1002 "Server failed to upgrade connection" 17:39:52.154933| [Sync]: {Repl#107} now stopped
Does anyone have any idea on what could be causing this? Please let me know if I can provide any more useful information about my case. Thanks in advance.
Posts: 2
Participants: 2
@abdulghani200 wrote:
Hello,
I was trying to fetch a document from Couchbase Server. It had a key with all caps. for e.g. : “PIN”
I was not able to fetch data for this specific key. All other keys data was coming fine.
I tried changing to small letters and it works. But the thing is all CAPS is not working.
I might be wrong, please correct.Here is my JSON present in db.
{
“email”: “abdul@abc.com”,
“id”: “9cf04730-128e-11ea-8e50-bb3952ffc321”,
“modelName”: “user”,
“name”: “Abdul Ghani”,
“password”: “$2a$10$TG1nW.cvFvUtyTaTz3IivO2PCLsulQyKV35G6gqslJvFzwdEt5Ioa”,
“PIN”: “123456”,
“role”: “tenantUser”,
“tenantId”: “900496d0-128d-11ea-8e50-bb3952ffc320”,
“username”: “abdulghani”
}Notice the key “PIN” in above document.
Here is my java class to map JSON objects to Java.import android.os.Parcel; import android.os.Parcelable; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; public class WayshipUser implements Parcelable { @SerializedName("PIN") @Expose private String PIN; @SerializedName("email") @Expose private String email; @SerializedName("id") @Expose private String id; @SerializedName("modelName") @Expose private String modelName; @SerializedName("name") @Expose private String name; @SerializedName("password") @Expose private String password; @SerializedName("role") @Expose private String role; @SerializedName("tenantId") @Expose private String tenantId; @SerializedName("username") @Expose private String username; public WayshipUser() { } public String getPIN() { return PIN; } public void setPIN(String PIN) { this.PIN = PIN; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getModelName() { return modelName; } public void setModelName(String modelName) { this.modelName = modelName; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getRole() { return role; } public void setRole(String role) { this.role = role; } public String getTenantId() { return tenantId; } public void setTenantId(String tenantId) { this.tenantId = tenantId; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } @Override public String toString() { return this.name; // To display in the Spinner list. } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(this.PIN); dest.writeString(this.email); dest.writeString(this.id); dest.writeString(this.modelName); dest.writeString(this.name); dest.writeString(this.password); dest.writeString(this.role); dest.writeString(this.tenantId); dest.writeString(this.username); } protected WayshipUser(Parcel in) { this.PIN = in.readString(); this.email = in.readString(); this.id = in.readString(); this.modelName = in.readString(); this.name = in.readString(); this.password = in.readString(); this.role = in.readString(); this.tenantId = in.readString(); this.username = in.readString(); } public static final Creator<WayshipUser> CREATOR = new Creator<WayshipUser>() { @Override public WayshipUser createFromParcel(Parcel source) { return new WayshipUser(source); } @Override public WayshipUser[] newArray(int size) { return new WayshipUser[size]; } }; }
Posts: 3
Participants: 2
@MagisterTechnicus wrote:
I want to compile the latest version of couchbase lite c (commit 1f05a58ea0e8673ffcadb4e11d11b9c3281c650a Sun Nov 10 16:15:44 2019 -0800) but the build fail. This is was I tried to get it done.
First stumbling block:
/root/couchbase-lite-C/vendor/couchbase-lite-core/Crypto/Certificate.cc:130:9: error: ‘reverse’ was not declared in this scope; did you mean ‘reserve’?
130 | reverse(begin(), end()); // subject_alt_names list is in reverse order!Solution: Open /root/couchbase-lite-C/vendor/couchbase-lite-core/Crypto/Certificate.cc and commented line 130 out. My target is to compile the project. After then I would like to check how I can solve the problem with the reverse function.
Second stumbling block:
/root/couchbase-lite-C/vendor/couchbase-lite-core/vendor/sockpp/include/sockpp/mbedtls_context.h:94:29: error: ‘function’ in namespace ‘std’ does not name a template type
94 | using Logger = std::function<void(int level, const char *filename, int line, const char *message)>;
| ^~~~~~~~
/root/couchbase-lite-C/vendor/couchbase-lite-core/vendor/sockpp/include/sockpp/mbedtls_context.h:52:1: note: ‘std::function’ is defined in header ‘’; did you forget to '#include '?Solution: Add #include in line 54 in file /root/couchbase-lite-C/vendor/couchbase-lite-core/vendor/sockpp/include/sockpp/mbedtls_context.h line
With these two hacks I come nearly to the end, but the build breaks on:
[100%] Linking CXX executable CBL_C_Tests
/usr/bin/ld: …/libCouchbaseLiteC.so: undefined reference toucol_open_63' /usr/bin/ld: ../libCouchbaseLiteC.so: undefined reference to
ucasemap_close_63’
/usr/bin/ld: …/libCouchbaseLiteC.so: undefined reference toucol_strcollUTF8_63' /usr/bin/ld: ../libCouchbaseLiteC.so: undefined reference to
ucol_setAttribute_63’
/usr/bin/ld: …/libCouchbaseLiteC.so: undefined reference toucol_close_63' /usr/bin/ld: ../libCouchbaseLiteC.so: undefined reference to
ucasemap_open_63’
/usr/bin/ld: …/libCouchbaseLiteC.so: undefined reference toucasemap_utf8ToUpper_63' /usr/bin/ld: ../libCouchbaseLiteC.so: undefined reference to
ucasemap_utf8ToLower_63’
collect2: error: ld returned 1 exit status
make[2]: *** [test/CMakeFiles/CBL_C_Tests.dir/build.make:191: test/CBL_C_Tests] Error 1
make[1]: *** [CMakeFiles/Makefile2:5592: test/CMakeFiles/CBL_C_Tests.dir/all] Error 2
make: *** [Makefile:130: all] Error 2From here on I am a bit baffled and need your help.
I use:
- gcc/g++ 9.2.1
- cmake 3.15.4
If you need more details to help me out, please let me know.
P.S. Did anyone build the project successfully on linux (amd64)? If yes, please let me know which distro/version you use.
Posts: 3
Participants: 2
@Steve1 wrote:
My couchbase document looks like this:
{
“Apple”: {
“color” : “red”,
“weight”: “10”
},
“Orange”:{
“color”: “orange”,
“weight”: “20”
},
“Banana”: {
“color”: “yellow”,
“weight”: “20”
}
}I need to check if weight is equal to 20 in the above nested object and i have to get the Banana and orange object as a result. Could you please help me out.
Posts: 2
Participants: 2
@filipraj wrote:
In my flutter app I’ve been using cb lite as native android lib. Recently the app started crashing on startup with error:
[ERROR:flutter/shell/platform/android/platform_view_android_jni.cc(39)] java.lang.NoSuchMethodError: no static method “Lcom/couchbase/lite/internal/core/C4Log;.logCallback(Ljava/lang/String;ILjava/lang/String;)V”
E/flutter (30027): at com.couchbase.lite.internal.core.C4Log.setCallbackLevel(Native Method)
E/flutter (30027): at c.d.a.u0.(Unknown Source:23)
E/flutter (30027): at c.d.a.b.(Unknown Source:5)
E/flutter (30027): at app_id.a.i(Unknown Source:0)
E/flutter (30027): at app_id.MainActivity$a.a(Unknown Source:860)
E/flutter (30027): at d.a.c.a.k$a.a(Unknown Source:17)
E/flutter (30027): at io.flutter.embedding.engine.b.b.a(Unknown Source:57)
E/flutter (30027): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(Unknown Source:4)
E/flutter (30027): at android.os.MessageQueue.nativePollOnce(Native Method)
E/flutter (30027): at android.os.MessageQueue.next(MessageQueue.java:325)
E/flutter (30027): at android.os.Looper.loop(Looper.java:142)
E/flutter (30027): at android.app.ActivityThread.main(ActivityThread.java:6944)
E/flutter (30027): at java.lang.reflect.Method.invoke(Native Method)
E/flutter (30027): at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
E/flutter (30027): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
E/flutter (30027):
F/flutter (30027): [FATAL:flutter/shell/platform/android/platform_view_android_jni.cc(76)] Check failed: CheckException(env).It crashes on Google play (using appbundle), it crashes when building it via Bitrise (using apk, not signed). It does not crash when I run in debug or with flutter run --release.
target api is 28
min api is 21
tested version 2.6.2, 2.6.0I saw similar topic but as far as I know I’m not using Proguard or similar.
Any suggestions?
Posts: 1
Participants: 1
@FarisAhmed wrote:
Hi,
In the sg config file description here: https://docs.couchbase.com/sync-gateway/current/config-properties.html#databases-foo_db-import_docs
it is mentioned that property “import_docs” is of type boolean with a default value of false. How come that most suggested configs for SG in couchbase forums contains “continuous”?!Is the documentation out of date? I use continuous (cause it was suggested by CB) ist this equivalent to true?
Regards,
Faris Ahmed
Posts: 2
Participants: 2
@christianfloisand wrote:
I’ve been seeing a rather strange and intermittent issue when replicating document(s) containing a Blob. I’ve logged this issue on the Couchbase Github here (please follow the link for more details).
In short, we’re upgrading one of our product lines to use Couchbase Lite 2.6.2 (from 1.4), and when pulling documents from a remote that contains a Blob, it happens sometimes that the Document itself is added to the database, but the actual Blob itself is not. This results in an exception thrown by Couchbase that it was unable to find the Blob’s data because the file was not found. Again, please see my Github issue for a complete stack trace and logs.
Has anyone else run into this? Any feedback/insight into this issue would be appreciated.
Posts: 1
Participants: 1
@jda wrote:
I have received feedback from Apple where they reject my app for testing. The reason I put it here is that it seems to have to do with sockets/websockets - that I know Couchbase use for sync.'ing with the sync.gateway…
Perhaps this message can help someone here clarify if Couchbase Lite is causing the issue:
Dear Developer,
We identified one or more issues with a recent delivery for your app, “Fangstjournalen v.2” 2.0.0 (6). Please correct the following issues, then upload again.
ITMS-90338: Non-public API usage - The app references non-public selectors in Angler.iOS: applicationWillTerminate, ddSetLogLevel:, localTarget, newSocketQueueForConnectionFromAddress:onSocket:, setOrientation:animated:, socket:didConnectToHost:port:, socket:didReadPartialDataOfLength:tag:, socket:didReceiveTrust:completionHandler:, socket:didWritePartialDataOfLength:tag:, socket:shouldTimeoutReadWithTag:elapsed:bytesDone:, socket:shouldTimeoutWriteWithTag:elapsed:bytesDone:, socketDidCloseReadStream:, socketDidSecure:, terminateWithSuccess, webSocket:didReceiveMessage:, webSocketDidOpen:. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/
Though you are not required to fix the following issues, we wanted to make you aware of them:
ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs . See https://developer.apple.com/documentation/uikit/uiwebview for more information.
Best regards,
The App Store TeamI know the last “error” is not related. Just wanted to bring the entire message.
Thanks for any input in advance!
Posts: 8
Participants: 3
@itssrinadh wrote:
I have read following code from couchbase document, how can we check those logs in real device?
let tempFolder = NSTemporaryDirectory().appending(“cbllog”)
Database.log.file.config = LogFileConfiguration(directory: tempFolder)
Database.log.file.level = .info
Posts: 8
Participants: 2
@Camill wrote:
Hello!
Hope that this is the right place where I can ask this question.
I’m with a furniture company and we have our own website and the mobile version of this website as well. However, as we have a bonus system and it’s quite a good time for this, we’d like to create our own app. We want it to have the products that we offer, it should give a chance to the customer to look through the goods, to mark the ones they like or don’t like and in case needed, to order the goods. We’re checking on the delivery at present, however, still thinking about this one. As we have researched our target audience, we found out that most of them have Android, we’d want to start just with this platform. Oh, and the designs and the UI have to be just perfect, that’s totally a must.So, in fact, we’re looking for an Android development company, which could build an app for us. The time we have is about 6 months.
So can any of you guys give a piece of advice on how to choose a company for the development? What to look for in the company?
Thanks a lot for the help!
Posts: 1
Participants: 1
@theunsa wrote:
Hi
My Couchbase (CB) model represents multiple companies, each with multiple users. The companies typically have 10k-100k documents each. All docs are in one bucket.
I have both a web app and a mobile app. Web app talks through Couchbase Sync Gateway (CSG) using the RESTful API and mobile makes use of Couchbase Lite, so also talks through CSG. Only changes that might bypass CSG is those made using CB’s admin console but they are few.
Given the large amount of documents in CB, I do not want it all “tracked” in CSG. Setting “enable_shared_bucket_access=true” and “import_docs=true” replicates all CB docs in CSG which is unnecessary. A lot of the documents will not change that often, if ever so it feels like a waste to keep them from bogging the CSG’s hardware resources.
Now I’ve read a little about “import filters” so I guess there might be a way to filter imports on some datetime field or so but I will then still have the use case of the new mobile user who expects all his/her company data to be on the mobile device when he/she signs up. Meaning my mobile app would then not be able to sync from only the CSG but I will also have to then manually pull from CB the docs not covered by the configured CSG’s datetime import filter.
Currently using:
- CB Server = v6
- CSG = v2.6.1
With that background, a couple of questions:
- Various forum examples mention “import_docs=continuous” and it seems to work, yet the current documentation (https://docs.couchbase.com/sync-gateway/2.6/config-properties.html) indicates it is a boolean with only true/false. Where can I find the documentation explaining the “continuous” import_docs setting?
- What is the recommended approach for handling sync with CSG when your CB server has got millions of documents, some of which might not change often?
Posts: 5
Participants: 3
@DougWhitehead wrote:
I have a long initial sync of a CBL to a Gateway, it takes some 26 minutes to obtain 880K docs in a single bucket. There seems to be a half life in play. As the sync continues the jank builds; threads seem to get overloaded as the app gets less and less responsive. Fortunately the sync does run to completion; when the sync is complete the app becomes snappy again.
As I mentioned in an earlier post, the initial sync in my application will occur anytime someone re-purposes a handheld from one store to another. (stop replication, delete data off the handheld, re-initialize for the new store) Hopefully, this will be a relatively rare event. However, it will happen, so…
Q: is there some way to defeat the jank by breaking the initial sync into N smaller requests?
Posts: 2
Participants: 1