调用InvokeApiAsync移动应用程序服务

时间:2017-06-22 03:51:05

标签: xamarin xamarin.forms azure-mobile-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)但是没有用。

我知道这是一个非常简短的信息,但我没有别的,因为没有例外。

感谢。

2 个答案:

答案 0 :(得分:1)

我跟着this article向我的Xamarin Forms应用添加身份验证。它在我身边工作得很好。您需要检查一些项目。

  1. 您是否已将Azure移动服务发布到Azure并启用身份验证和配置Facebook app-id和secret。
  2. enter image description here

    1. 您是否已从移动客户端连接移动服务。
    2. enter image description here

答案 1 :(得分:0)

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

这是值得提醒的。

感谢@Amor - MSFT的回答。