Наблюдайте, что функции базы данных не работают после обновления к xcode 10.2.1 - PullRequest
0 голосов
/ 29 мая 2019

Мое приложение для iOS работало до тех пор, пока я не обновил Xcode (10.2.1) до последней версии и не обновил модули с помощью «обновления модуля». Ранее я использовал Xcode 9.4.1 и swift 3. Я сделал обновление, потому что не мог загрузить в appstore с этой версией Xcode.

Остальные функции работают нормально (включая проверку подлинности телефона с помощью firebase), но все функции базы данных «Наблюдать» firebase никогда не срабатывают. Он успешно строится, ошибки не отображаются.

Я пытался безуспешно:

-Скачать файл plist из firebase.

- Установить правила базы данных в true для чтения и записи.

-Настройка цели развертывания до 11.0 и платформы podFile: ios, '11 .0 '

podFile:

platform :ios, '12.0'

target 'appname' do
 use_frameworks!
pod 'Firebase/Database'
pod 'Firebase/Auth'
pod 'Firebase/Storage'
pod 'SwiftyStoreKit'
pod 'Onboard'
pod 'SDWebImage'
pod 'IQKeyboardManagerSwift'
end

Firebase инициализируется в AppDelegate - didFinishLaunchingWithOptions:

FirebaseApp.configure()

До этого все работает как положено:

Auth.auth().signIn(with: credential) { (user,error) in
    if error != nil {
        print(error)
    } else {
        print(phone number: \(String(describing: user?.user.phoneNumber))")//this is successfully printed
        let userInfo = user?.user.providerData[0]
        print(Provider ID: \(String(describing: userInfo?.providerID))")//this is successfully printed

        if let user = Auth.auth().currentUser {
            let uid = user.uid
            let ref = Database.database().reference()
            ref.child("users").observeSingleEvent(of: .value, with: { (snapshot) in
                if snapshot.hasChild(uid) {
                    print("user already exists")//this never gets printed
                } else {
                    let values: [String: AnyObject] = ["phoneNumber": user.phoneNumber as AnyObject]
                    let userRef = ref.child("users").child(uid)
                    userRef.updateChildValues(values, withCompletionBlock: { (err,ref) in//user never gets created in database but it is created in firebase
                        if err != nil {
                            print(err)
                            return
                        }
                    })
                }
                let tabBarController = CustomTabBarController()//this never gets executed
                present(tabBarController, animated: true)
            })
        }
    }
}   

1 Ответ

0 голосов
/ 18 июня 2019

Проблема была в версии cocoapods, у меня была 1.5.3.Как только я обновил до 1.7.2 все работает как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...