2017-02-21 93 views
0

我一直在尝试从Xamarin Android项目中注册NH。我设法配置FireBase,但是当我尝试在客户端注册Notification Hub时,我得到未经授权的例外。我相信我已经使用了正确的连接凭证,因为我在UWP项目中使用了相同的连接凭证,并且在那里工作。无法注册Xamarin Android项目中的通知中心

这里是我的代码:

Hub = new NotificationHub(Constants.NotificationHubName, "Endpoint=sb://namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=mykey=", 
             context); 
      try 
      { 
       Hub.UnregisterAll(registrationId); 
      } 
      catch (Exception ex) 
      { 
       Log.Error(MyBroadcastReceiver.TAG, ex.Message); 
      } 

      var tags = new List<string>() { "droid" }; // create tags if you want 
      // var tags = new List<string>() { }; 

      try 
      { 
       var hubRegistration = Hub.Register(registrationId, tags.ToArray()); 
      } 
      catch (Exception ex) 
      { 
       Log.Error(MyBroadcastReceiver.TAG, ex.Message); 
      } 

我从两种方法UnregisterAll和注册获得未经授权的例外。请任何意见,如何解决这个问题。

回答

0

它表明您的通知中心凭据错误或无效。你能确保你指的是正确的通知中心和相应的连接字符串。

在旁边注意,你不需要调用注销api。注册API充当CreateOrUpdate。如果它不存在,它会照顾创建注册。

+0

谢谢你的回答。我使用正确的凭据。正如我所说的,我使用与UWP项目相同的注册工作。 –

+0

还有一点需要注意,通过MobileServiceClient获取的Push对象的注册工作,但其方法RegisterAsync不允许注册标签。它仅适用于模板。 –

+0

查看http://aka.ms/zumobook - 第5章中的代码 - 其中包括用于向标签注册的代码。 –

0

既然您提到了通过MobileServiceClient工作,您可以通过App Service Push进行注册。检出http://aka.ms/zumobook - 第5章。这包括每个平台的代码,以了解如何向标签注册。