2

我正在开发一个同时使用 FirebaseDatabase 和(尝试使用)Firebase Remote Config 的应用程序。我设法让 RemoteConfig 完美地工作,但我收到以下警告(请注意,在一个完全不同的类中):Cast from 'FIRRemoteConfigValue!' to unrelated type 'String' always fails

这个警告是正确的,因为每当我尝试从我的 firebase 数据库中检索数据时(例如):

let id = snapshot.value!["senderId"] as! String
            let text = snapshot.value!["text"] as! String
            let locationId = snapshot.value!["location"] as! String

...我的代码中断,没有任何迹象表明控制台中发生了什么。

真正让我困惑的是实时数据库和远程配置彼此独立工作,但是当两者都启用时,实时数据库崩溃......这是 Firebase 中的一个不幸的错误吗?还是我在编写代码时做错了什么?

有什么帮助,谢谢。

4

2 回答 2

1

FIRSnapShot 中的 value 属性是 id(AnyObject) 需要你自己强制转换为类型。你能试试这个解决方法吗:

let val = snapshot.value as! NSDictionary?
let id = val!["senderId"] as! String
于 2016-09-26T18:47:00.843 回答
1

只需使用valueForKey而不是[]括号访问值。

越野车代码

    let id = snapshot.value!["senderId"] as! String
    let text = snapshot.value!["text"] as! String
    let locationId = snapshot.value!["location"] as! String

解决方案

    let id = snapshot.value.valueForKey("senderId") as! String
    let text = snapshot.value.valueForKey("text") as! String
    let locationId = snapshot.value.valueForKey("location") as! String

FIRRemoteConfigValue不支持使用访问值[]

于 2016-10-26T11:04:53.667 回答