无法使用最新的Firebase Framework读取/写入Nest Firebase的值

时间:2014-11-07 17:54:50

标签: ios xcode firebase nest-api

我一直在尝试将nest集成到我的iOS应用程序中,遵循有关用户身份验证的所有说明,然后调用nest API。 我使用Nest的iOS示例应用程序作为参考:

https://github.com/nestlabs/iOS-NestDK

我确认他们的项目正在运作。 以下是一些来自他们项目的代码,我修改后查看是否为#34; data"设置了任何内容。

    self.rootFirebase = [[Firebase alloc] initWithUrl:@"https://developer-api.nest.com/"];
    [self.rootFirebase authWithCredential:[[NestAuthManager sharedManager] accessToken] withCompletionBlock:^(NSError *error, id data)
     {
         if (error)
         {
             NSLog(@"Auth Failed! %@", error);
         }
         else
         {
             NSLog(@"Auth succeeded! %@", data);

     } withCancelBlock:^(NSError *error) {}];

在我的代码中使用与最新Firebase框架相同的功能authWithCredential,不会出现任何错误,我会收到数据响应。但是,在我的代码中进行调用,例如:

Firebase * newFirebase = [self.rootFirebase childByAppendingPath:@" devices"];

             [newFirebase observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot)
              {
                  NSLog(@"Got devices: %@", snapshot.value);
              }];

没有返回任何内容。我已经确认设置了一些设备,因为它们显示在他们提供的应用程序中。我已经登录并使用相同的Nest帐户授权他们的应用程序和我的应用程序。

我认为他们使用的是旧的Firebase框架,所以我从他们的项目中删除了该框架并添加到新的框架中。相同的结果 - 现在他们的项目应用程序不再返回任何结构/设备/恒温器。我注意到authWithCredential现在已被弃用...所以我试图在他们的应用程序和我的应用程序中使用authWithCustomToken来查看它是否会有任何不同,但是当我尝试从Nest获取信息时仍然没有返回任何内容,即使它似乎成功授权...

我将自己的Firebase用于我的应用中的其他功能,这取决于使用最新的框架,因此我不想使用旧版本。

还有其他人遇到过这个问题吗?有什么想法/解决方案吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

是的,从SDK 1.2.1升级到2.0.1时,我遇到了同样的问题。身份验证似乎成功,但没有其他数据从服务器返回。

恢复到1.2.1可能会解决我的问题(使用1.2.1编译的我的应用程序的测试版仍能正常工作),但遗憾的是我丢失了之前使用过的框架文件而FireBase似乎没有旧版本框架的公共档案。

我现在被迫使用1.1.8(在Nest的示例应用程序中使用),将authWithCustomToken更改为authWithCredential,因为后者显然是在1.2中引入的。

在您的情况下,您必须等待Nest的Firebase修复阻止2.0.x使用Nest API的问题。