ios - Firebase:检索为对象/模型。来自 java

标签 ios swift firebase

到目前为止,我已经使用 java 和 Firebase 开发了 android 应用程序。现在我也想用 Firebase 编写我的第一个 iOS 应用程序。我有这个数据库模型:

enter image description here

我想检索这些对象并将它们存储在一个数组中。我的 ExercisePresets 模型如下所示:

class ExercisePreset {
var key : String?
var name : String?
var type : String = "Dynamic";
var progressions : [String] = [String]();

//@Exclude
var selected : Bool = false;

init() { }

convenience init(name : String, type : String) {
    self.init();
    self.name = name;
    self.type = type;
}

在 Java 中,我可以像这样将快照作为模型的对象获取:

fb.getRefUserPresets(null).addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            ExcersisePresets e = dataSnapshot.getValue(ExcersisePresets.class);
            e.setKey(dataSnapshot.getKey());
            presets.add(e);
        }
}

但我不明白这对 swift 是如何工作的。我试过这个:

refPresets!.observe(.childAdded) { (snapshot) in

        let e = snapshot.value as! ExercisePreset;
    }

但是我得到这个错误:

Could not cast value of type '__NSDictionaryM' (0x109d594f8) to 'TrainingsLog.ExercisePreset' (0x106a30408).

那么如何以正确的方式检索我的对象?

最佳答案

您必须将其转换为 NSDictionary

refPresets!.observe(.childAdded) { (snapshot) in

    let e = snapshot.value as! NSDictionary

   print(e)
}

关于ios - Firebase:检索为对象/模型。来自 java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49674200/

相关文章:

objective-c - 错误-[NSIndexPath 发布] : message sent to deallocated instance 0x6a9d790

ios - 通过企业计划将应用程序发布到 Apple App Store

android - 任务 ':app:proccessDebugGoogleServices' 执行失败

ios - 如何根据同一部分 Swift 4 中的数组更改 UITableViewCell 颜色

ios - Swift 和 Firebase - 登录后更新 ViewController

javascript - Firebase Passwordless Auth 在点击链接时显示网站未找到页面

ios - 在 iOS 上使用 Openssl 的 CMS 加密问题

ios - 如何定义可以从两个不同的类初始化的变量?

ios - 尝试更新文本(特别是游戏中老板的健康状况)并获得 "exc_bad_instruction (code=exc_i386_invop subcode=0x0)"

ios - 使用 Tabbar 管理 PushViewController