【问题标题】:Retrieving data in firebase在 Firebase 中检索数据
【发布时间】:2017-09-25 11:01:48
【问题描述】:

我是 firebase 和 iOS 的初学者。我正在尝试将项目从 parse 更改为 firebase。我成功创建并更新了 firebase 数据库。但是,在尝试从 firebase 检索数据时,它对我不起作用。 这是我使用的代码。

self.ref = [[FIRDatabase database] reference];
NSString *userID = [FIRAuth auth].currentUser.uid;
[[[ref child:@"users"] child:userID] observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
    NSLog(@"%@",snapshot.value);
    // Get user value
}withCancelBlock:^(NSError * _Nonnull error) {
    NSLog(@"%@", error.localizedDescription);
}];

控件只是跳过整个块。我无法弄清楚问题所在。 Firebase 指南很难理解。请告诉我如何从 firebase 孩子那里获取字典的值。

【问题讨论】:

  • 跳过块的原因可能有很多,但我会首先打印描述用户 ID,然后打印您正在观察的数据库引用的描述,以确保您正在观察路径在您打算的数据库中。
  • 你能告诉我如何使用objective-c从firebase检索数据吗?以简单的方式。
  • 如果您启用了持久性,请使用实时侦听器方法“[[[ref child:@"users"] child:userID] observeEventOfType: ...]”。原因:stackoverflow.com/questions/37276499/…

标签: ios objective-c firebase


【解决方案1】:
    DatabaseReference database = 
    FirebaseDatabase.getInstance().getReference();
    database.child("notes").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
    List notes = new ArrayList<>();
     for (DataSnapshot noteDataSnapshot : dataSnapshot.getChildren()) {
    Note note = noteDataSnapshot.getValue(Note.class);
    notes.add(note);
    }
   adapter.updateList(notes);
   }
   ...
   });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    相关资源
    最近更新 更多