Synchronization 运行时数据存储syncExpression更改筛选器

Synchronization 运行时数据存储syncExpression更改筛选器,synchronization,aws-amplify,datastore,Synchronization,Aws Amplify,Datastore,我可以成功地使用syncExpression,并通过更改字段值在运行时更改筛选器。因此,在我的例子中,我有一个订单模型,并使用customerId作为过滤器。然后,在运行时,我可以在不同的客户之间切换,并获得与该客户关联的相关订单 我也可以使用merchantId作为过滤器,并在运行时对其进行更改,以获取与特定商户关联的订单 我想做的是在运行时在customerId和merchantId过滤器之间切换,并希望得到一些帮助。由于syncExpression“在数据存储启动时进行评估”,并且每个模型

我可以成功地使用syncExpression,并通过更改字段值在运行时更改筛选器。因此,在我的例子中,我有一个订单模型,并使用customerId作为过滤器。然后,在运行时,我可以在不同的客户之间切换,并获得与该客户关联的相关订单

我也可以使用merchantId作为过滤器,并在运行时对其进行更改,以获取与特定商户关联的订单

我想做的是在运行时在customerId和merchantId过滤器之间切换,并希望得到一些帮助。由于syncExpression“在数据存储启动时进行评估”,并且每个模型只能有一个syncExpression,因此如何在两个过滤器之间切换

我试过这个:

syncExpression(Order, () => {
  if (this.stateCognitoGroup.isCustomer) {
    return order => order.customerId('eq', customer_id)
  } else if (this.stateCognitoGroup.isMerchant) {
    return order => order.merchantId('eq', merchant_id)
  }
})
这一点毫不奇怪是行不通的。我怎样才能做到这一点

谢谢