Open PS-MS opened 2 years ago
I've run into another issue that this is very similar to, probably the same. In the below code example the condition is true, and the data is saved locally but the change doesn't sync to dynamoDB.
suspend fun testSave() {
val userObj = UserDao().getCurrentUser()
userObj?.let {
val updatedUser = userObj.copyOfBuilder()
.givenName("Sam")
.build()
try {
KotlinAmplify.DataStore.save(
updatedUser,
User.GROUP.contains("955e8da2-9197-4f3f-ad46-f2d4556428ec")
)
Log.i(TAG, "testSave: all good, saved")
} catch(dse: DataStoreException) {
Log.e(TAG, "testSave: ${dse.localizedMessage}")
}
}
}
Before opening, please confirm:
Language and Async Model
Kotlin
Amplify Categories
DataStore
Gradle script dependencies
Environment information
Please include any relevant guides or documentation you're referencing
https://docs.amplify.aws/lib/datastore/sync/q/platform/android/#selectively-syncing-a-subset-of-your-data
Describe the bug
We are using group authorisation and as AppSync doesn't support dynamic group authorisation, and tells every device when something has been created/updated/deleted despite group settings, I tried to add in the following syncExpression:
.syncExpression(::class.java) { .GROUP.contains("3bd49a54-cb68-454c-860e-d06d7dc1bd0f") }
GROUP being a list of strings, but on running the app the expression fails with: java.lang.IllegalArgumentException: group field inside provided object cannot be evaluated by the operator type: CONTAINS
Reproduction steps (if applicable)
Attempt to use a syncExpression for a QueryField that is a List<*>
Code Snippet
Log output
amplifyconfiguration.json
No response
GraphQL Schema
Additional information and screenshots
No response