ios - 无法使用最新的 Firebase 框架读取/写入 Nest Firebase 的值

标签 ios xcode firebase nest-api

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

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

我确认他们的项目正在运行。 这是一些来自他们项目的代码,我修改了这些代码以查看是否为“数据”设置了任何内容。

    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 用于我的应用程序中的其他功能,这取决于使用最新的框架,因此我不想使用旧版本。

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

如有任何帮助,我们将不胜感激。

最佳答案

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

恢复到 1.2.1 可能会解决我的问题(我的应用程序的测试版使用 1.2.1 编译仍然可以正常工作),但不幸的是我丢失了我之前使用的框架文件并且 FireBase 似乎没有他们框架的旧版本的公共(public)存档。

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

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

关于ios - 无法使用最新的 Firebase 框架读取/写入 Nest Firebase 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26807162/

相关文章:

ios - Mapbox 可见功能(位于 : styleLayerIdentifiers:) - No results

ios - 如何从命令行初始化在模拟器和/或设备上运行的 iPhone 应用程序的用户默认数据库中的值

node.js - 如何在 PC 上本地测试 Cloud Functions for Firebase

firebase - 如何允许特定IP地址读写Firebase数据库?

ios - 我不知道这个 iOS 元素对于 xcode 是什么

ios - Cocoapods 无法检查 swift 3.0 错误,即使项目是 swift 2.3

ios - 闰年本地通知

iphone - iOS Storyboard 连接松动?

ios - Swift:要求用户在单击每个停止按钮后输入文本文件名

ios - Firebase 从异步调用返回 bool 值