Java - 如何从 Android 中的 Azure 移动服务中检索和使用单个值

Java - How to Retrieve and use a single value from azure mobile services in Android

我是 azure 的新手,但我知道某些事情,例如如何检索数据并将数据存储到 azure,为此我遵循了 azure 的官方文档。

Link 在这里 - https://azure.microsoft.com/en-in/documentation/articles/mobile-services-android-get-started-data/

但问题是,本教程仅展示如何使用适配器和列表从 azure 中检索和使用数据。 我想知道,如何从 Azure 移动服务中检索单个值以及如何在 android.

中使用它

Plzz 为我提供后端代码(如果有的话)和 java 代码。提前致谢

您可以使用自定义 API 来做到这一点。看到这个link:https://azure.microsoft.com/en-us/documentation/articles/mobile-services-how-to-use-server-scripts/#custom-api

代码如下所示:

exports.post = function(request, response) {
    response.send(200, "{ message: 'Hello, world!' }");
} 

然后可以在 https://todolist.azure-mobile.net/api/APIFILENAME 到达。

如果你想访问 table 你可以这样做:

exports.post = function(request, response) {
    var userTable = tables.getTable('users');

    permissionsTable
        .where({ userId: user.userId})
        .read({ success: sendUser });
} 

function sendUser(results){
  if(results.length <= 0) {
    res.send(200, {});
  } else {
    res.send(200, {result: results[0]});
  }
}

然后您可以按照说明在您的 Android 客户端上使用 API:https://azure.microsoft.com/en-us/documentation/articles/mobile-services-android-call-custom-api/

您的应用程序的编写方式将改变此代码的方式 works/looks,但它看起来像:

ListenableFuture<MarkAllResult> result = mClient.invokeApi( "UsersAPI", MarkAllResult.class ); 

这会调用 API。您需要编写 class 和 Future 来处理结果。上面的页面对此进行了非常详细的解释。

我解决了。无需创建自定义 API.

只需遵循基础知识,这是代码:-

final String[] design = new String[1];

private MobileServiceTable<User> mUser;

mUser = mClient.getTable(User.class);

            new AsyncTask<Void, Void, Void>() {
                @Override
                protected Void doInBackground(Void... params) {
                    try {
                        final MobileServiceList<User> result =
                                mUser.where().field("name").eq(x).execute().get();
                        for (User item : result) {
                           // Log.i(TAG, "Read object with ID " + item.id);
                            desig[0] = item.getDesignation(); //getDesignation() is a function in User class ie- they are getters and setters
                            Log.v("FINALLY DESIGNATION IS", desig[0]);

                        }

                    } catch (Exception exception) {
                       exception.printStackTrace();
                    }
                    return null;
                }

                @Override
                protected void onPostExecute(Void aVoid) {
                    super.onPostExecute(aVoid);
                    designation.setText(desig[0]);
                }
            }.execute();

不要 忘记为 serialization 和所有对象创建 class User。您还应该定义数组 .

如果你觉得它不工作,请随意写

编辑:-

design[0] 是一个大小为 1 的数组。

eq(x) 等于 x 其中,x 变量包含我要从数据库 (azure) 指定的用户名。

最佳解决方案是在您的服务器上创建一个 api,它接受一个 ID 到 return 单个 object/tablerow。

在您的 android 应用中,您只需调用:

MobileServiceTable<YourClass> mYourTable;

mClient = new MobileServiceClient(
                        "https://yoursite.azurewebsites.net/",
                        mContext);
mYourTable = mClient.getTable(YourClass.class);
YourClass request = mYourTable.lookUp(someId).get(); 
// request -> https://yoursite.azurewebsites.net/tables/yourclass/someId

YourClass 应与服务器上的对象具有相同的属性。