使用 'where()' 过滤器的 Syncano 异步查询

Syncano async query with 'where()' filter

我正在使用 Syncano 最新的 Android SDK (4.0.6)。 有没有办法使用参数进行异步查询?

Syncano.please(User.class).where()

没有方法 运行 它是异步的。

但是

Syncano.getInstance().getObjects(User.class)

其中有 'sendAsync()' 但没有 'where()' 约束。

文档指定:

Syncano.please(User.class).getAsync(callback);

但我没有在代码中看到它,只有 getAll()。

你可以在使用 please() 时进行异步调用。只需传递 SyncanoCallback 对象。

   Syncano.please(Item.class).get(new SyncanoListCallback<Item>() {
       @Override
       public void success(ResponseGetList<Item> response, List<Item> result) {

       }

       @Override
       public void failure(ResponseGetList<Item> response) {

       }
   });

你说得对,使用 where() 时缺少 async get() 方法。它必须在库中修复,但您仍然可以进行此调用,保存对 RequestBuilder 的引用。

   RequestBuilder<Item> please = Syncano.please(Item.class);
   please.where().eq(Item.COLUMN_NUMBER, 11);
   please.get(new SyncanoListCallback<Item>() {
       @Override
       public void success(ResponseGetList<Item> response, List<Item> result) {

       }

       @Override
       public void failure(ResponseGetList<Item> response) {

       }
   });

您也可以使用 where(),而不使用 please()。它看起来像这样:

   Where<Item> where = new Where<>();
   where.eq(Item.COLUMN_NUMBER, 11);
   Syncano.getInstance().getObjects(Item.class).setWhereFilter(where).sendAsync(new SyncanoListCallback<Item>() {
       @Override
       public void success(ResponseGetList<Item> response, List<Item> result) {

       }

       @Override
       public void failure(ResponseGetList<Item> response) {

       }
   });