Cast from 'FIRRemoteConfigValue!' to unrelated type 'String' always fails

Question!

I have about 50 of this same warning in my project. Since updating, all of my functions where I call snapshot.value["something"] as! String are failing. They all used to work before. I'm not even using the RemoteConfig feature. I just want to retrieve data.

Example from my User class:

init(snapshot: FIRDataSnapshot) {
        firstName = snapshot.value!["firstName"] as! String
        lastName = snapshot.value!["lastName"] as! String
}

Example from a function (I can give more examples but its basically more of the same):

func loadProfileImage(ref:FIRDatabaseReference) {
        ref.observeEventType(.Value, withBlock: {snapshot in
            let base64String = snapshot.value!["profileImgURL"] as! String
            let decodedData = NSData(base64EncodedString: base64String, options:NSDataBase64DecodingOptions.IgnoreUnknownCharacters)
            if let decodedImage = UIImage(data: decodedData!) {
                self.profileImgImageView.contentMode = .ScaleAspectFill
                self.profileImgImageView.layer.cornerRadius = self.profileImgImageView.frame.size.width / 2
                self.profileImgImageView.clipsToBounds = true
                self.profileImgImageView.image = decodedImage as UIImage
            }
        })
    }

The app runs because they are just warnings but the warnings are correct because the app fails as soon as it tries to retrieve any data.



Answers

Are you importing Firebase or FirebaseRemoteConfig?

I found that if I just imported Firebase like their Docs say it won't work. You need to import the individual ones you need.

By : Jevon718


This has helped me:

if let value = snapshot.value as? [String : AnyObject] {


this works like charm for me, from the swift file/class in which you are using only Firebase realtime database, remove

import Firebase

and add

import FirebaseAuth

import FirebaseDatabase

make sure to not import firebase database and fire base remote config at same class, this apparently a bug from Google



This video can help you solving your question :)
By: admin