调用 InvokeApiAsync 移动应用程序服务

Invoking InvokeApiAsync Mobile App Services

我正在做一个 Xamarin.Forms 项目,我遇到了一个非常奇怪的问题。此代码实际在 Xamarin.Droid 项目中执行。

当我尝试这样做时

var user = await client.LoginAsync(this, MobileServiceAuthenticationProvider.Facebook);

if (user != null)
{
    try
    {
        // executes this line
        var userInfo = await client.InvokeApiAsync("/.auth/me");
        // down here nothing is executed and userInfo is never set with the data
    }
    catch (Exception e)
    {
        // never enter to this block
    }
}

userInfo 变量永远不会用数据设置,输出中也不会出现异常和罕见情况。

我已经尝试了 client.InvokeApiAsync("/.auth/me", HttpMethod.Get, null) 但都没有用。

我知道这是很短的信息,但我没有其他信息,因为没有引发异常。

谢谢。

我按照 this article 将身份验证添加到我的 Xamarin Forms 应用程序。它在我这边工作得很好。您需要检查项目中的一些事项。

  1. 您是否已将 Azure 移动服务发布到 Azure 并启用身份验证并配置 Facebook 应用程序 ID 和机密。

  1. 您是否通过移动客户端连接了移动服务。

我终于明白问题出在哪里了。启动身份验证逻辑的事件处理程序返回 void 而不是 Task,因此异步调用在 await 调用后不会继续。

这是一个提醒。

感谢@Amor - MSFT 的回答。