Ios 传递googleplaces数据

Ios 传递googleplaces数据,ios,swift,firebase,firebase-realtime-database,gmsplace,Ios,Swift,Firebase,Firebase Realtime Database,Gmsplace,所以我试图将GMSPlace数据从GooglePlaces传递到UIView,然后从UIView传递到Firebase。我可以将其转换为字符串传递到UIView(“文本文本…(值)…文本”),但在用户按下确认按钮后,我想再次将该值传递给Firebase(因此不是UIView中的整个文本字符串)。当我点击确认按钮时,我的应用程序崩溃。感谢所有帮助 // MARK: GOOGLE AUTO COMPLETE DELEGATE func viewController(_ viewController

所以我试图将GMSPlace数据从GooglePlaces传递到UIView,然后从UIView传递到Firebase。我可以将其转换为字符串传递到UIView(“文本文本…(值)…文本”),但在用户按下确认按钮后,我想再次将该值传递给Firebase(因此不是UIView中的整个文本字符串)。当我点击确认按钮时,我的应用程序崩溃。感谢所有帮助

// MARK: GOOGLE AUTO COMPLETE DELEGATE

func viewController(_ viewController: GMSAutocompleteViewController, didAutocompleteWith place: GMSPlace) {

    let placeID = place.placeID

    placesClient.lookUpPlaceID(placeID, callback: { (place, error) -> Void in
        if let error = error {
            print("lookup place id query error: \(error.localizedDescription)")
            return
        }

        guard let place = place else {
            print("No place details for \(placeID)")
            return
        }
        print("Place name \(place.name)")
        print("Place address \(place.formattedAddress)")
        print("Place placeID \(place.placeID)")
        print("Place attributions \(place.attributions)")
    })

    let selectedPlace = place.formattedAddress
    if let name = selectedPlace as String!
    {
        self.placeNameLabel.text = "Are you sure you would like to add \(name) to your places?"
    }
    self.dismiss(animated: true, completion: nil)
    setupConfirmationPopUp()   
}

// user taps button to send item to be updated in Firebase data tree
func confirmAddPlace(place: GMSPlace) {

    // add place to tableview array
    let accessToken = FBSDKAccessToken.current()
    guard let accessTokenString = accessToken?.tokenString else { return }

    let credentials = FIRFacebookAuthProvider.credential(withAccessToken: accessTokenString)
    FIRAuth.auth()?.signIn(with: credentials, completion: { (user, error) in
        if error != nil {
            print("Something went wrong with our FB user: ", error ?? "")
            return
    }

        // create place on tap pf confirm
        let ref = FIRDatabase.database().reference().child("places")
        let childRef = ref.childByAutoId()
        let values = ["place": place.formattedAddress, "name": user!.displayName]
        childRef.updateChildValues(values)
})

    animateOut()
}

它在哪一行崩溃??它在控制台中给我错误“libc++abi.dylib:以NSException类型的未捕获异常终止”,然后在AppDelegate文件中崩溃。当我让value=[“place”:self.placeNameLabel.text,“name”:user!.displayName]时,应用程序会很好地传递值,但当我将其更改为让value=[“place”时:place.formattedAddress,“name”:user!.displayName]它崩溃。因此,place.formattedAddress的设置导致它崩溃。看起来唯一的区别是
place
formattedAddress
可能为零。请将它们展开,确保它们没有引起问题。