【问题标题】:Retrieve data from firebase database从 Firebase 数据库中检索数据
【发布时间】:2016-06-02 15:57:19
【问题描述】:

您好,我正在尝试从 firebase 数据库中检索数据。这是我的代码

- (FIRDatabaseReference *) referenceFromURL:(NSString *)databaseUrl{

    commentsRef = [[FIRDatabase database] referenceFromURL:databaseUrl];
    return commentsRef;
}


-(void)viewWillAppear:(BOOL)animated
{
    [commentsRef
     observeEventType:FIRDataEventTypeValue
     withBlock:^(FIRDataSnapshot *snapshot) {
         NSDictionary * post = snapshot.value;

     }];

}

引用被数据库成功构建但是代码写在块中

"NSDictionary * post = snapshot.value;"

没有执行。

【问题讨论】:

  • 如果在viewWillAppear开头放一个断点,commentsRef的值是多少?
  • 它是一个参考变量.... FIRDATABASEREFERENCE * cmets ref;我还检查了插入断点。
  • 可能是 URL 不正确,您没有从给定端点读取的权限,或者发生了其他读取错误。您可以添加withCancelBlock 来捕获并记录任何可能的错误吗?这将更深入地了解您无法检索快照值的原因。请参阅the first example in the Firebase guide 了解更多信息。

标签: ios objective-c firebase-realtime-database


【解决方案1】:

您可以轻松完成。如果你想使用它来获取所有信息,你可以这样做。确保您已公开您的数据库

@property (strong, nonatomic) FIRDatabaseReference *ref;

然后在接口上定义属性

 self.ref = [[FIRDatabase database] reference];
     [self.ref observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
            NSDictionary *usersDict = snapshot.value;

            NSLog(@"Information : %@",usersDict);
        }];

如果你想使用这个来获取特定的部分,你可以这样做

 [[self.ref child:@"results"] observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {

        NSDictionary *usersDict = snapshot.value;

        NSLog(@"Info : %@",usersDict);



    }];

我从 Firebase 获取的 Json

{
   "results" : [
      {
"name":"test 1",
"URL" : "URL STRING"
      },
{
"name":"test 1",
"URL" : "URL STRING"
      },
{
"name":"test 1",
"URL" : "URL STRING"
      },
{
"name":"test 1",
"URL" : "URL STRING"
      }
 ]
}

【讨论】:

    【解决方案2】:

    如果你能更新到 firebase 3.0 会很酷。

    如果您想查看 MakinGIANST - Post about firebase 以获取有关如何查询和使用新 api 的更多信息。

    它适用于 Android,但它在 Kotlin 中,所以看起来像 Swift

    【讨论】:

      猜你喜欢
      • 2021-10-16
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多