Запись в Firestore не выполняется при первой попытке - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь использовать Firebase в моем Расширении общего доступа и добавить некоторые данные в методе viewDidLoad:

override func viewDidLoad() {
    print("Did Load!")
    FirebaseApp.configure()
    Firestore.enableLogging(true)

    Firestore
    .firestore()
    .collection("users")
    .document("check@gmail.com")
    .collection("recipes")
    .document("newRecipe")
    .setData(["check" : "start"]) { err in
        if let err = err {
            print("Error writing document: \(err)")
        } else {
            print("Document successfully written!")
        }
    }
}

Моя проблема в том, что эта запись просто не будет Фини sh с первой попытки. Каждый раз, когда я запускаю этот код (раз в несколько минут), первый раз никогда не работает. Со второго раза все работает нормально.

Это журнал, который я получаю после ввода viewDidLoad (в первый раз):

Did Load!
2020-05-01 23:21:02.274248+0300 ShareRecipes[1351:49411] [core] SLComposeServiceViewController got NSURL https://www.oogio.net/halva_pound_cake/ for public.url error: (null)
2020-05-01 23:21:02.287749+0300 ShareRecipes[1351:49407] 6.19.0 - [Firebase/Messaging][I-FCM001000] FIRMessaging Remote Notifications proxy enabled, will swizzle remote notification receiver handlers. If you'd prefer to manually integrate Firebase Messaging, add "FirebaseAppDelegateProxyEnabled" to your Info.plist, and set it to NO. Follow the instructions at:
https://firebase.google.com/docs/cloud-messaging/ios/client#method_swizzling_in_firebase_messaging
to ensure proper integration.
2020-05-01 23:21:02.288190+0300 ShareRecipes[1351:49407] 6.19.0 - [Firebase/Firestore][I-FST000001] Initializing. Current user:
2020-05-01 23:21:02.288220+0300 ShareRecipes[1351:49407] 6.19.0 - [Firebase/Firestore][I-FST000001] Using /var/mobile/Containers/Data/PluginKitPlugin/AA64E8EE-8305-40A7-B049-E39AA8448981/Library/Application Support/firestore/__FIRAPP_DEFAULT/matkonit-61047/main for LevelDB storage
2020-05-01 23:21:02.288238+0300 ShareRecipes[1351:49407] 6.19.0 - [GULReachability][I-REA902003] Monitoring the network status
2020-05-01 23:21:02.288257+0300 ShareRecipes[1351:49407] 6.19.0 - [Firebase/Analytics][I-ACS023007] Analytics v.60301000 started
2020-05-01 23:21:02.288553+0300 ShareRecipes[1351:49407] 6.19.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see https://help.apple.com/xcode/mac/8.0/#/dev3ec8a1cb4)
2020-05-01 23:21:02.315213+0300 ShareRecipes[1351:49207] [core] SLComposeServiceViewController got attachment coarseType 3
2020-05-01 23:21:02.319185+0300 ShareRecipes[1351:49416] 6.19.0 - [GULReachability][I-REA902003] Monitoring the network status
2020-05-01 23:21:02.321301+0300 ShareRecipes[1351:49416] 6.19.0 - [GULReachability][I-REA902004] Network status has changed. Code:2, status:Connected
2020-05-01 23:21:02.321953+0300 ShareRecipes[1351:49416] 6.19.0 - [GULReachability][I-REA902004] Network status has changed. Code:2, status:Connected
2020-05-01 23:21:02.322387+0300 ShareRecipes[1351:49416] 6.19.0 - [GULReachability][I-REA902004] Network status has changed. Code:1, status:Disconnected
2020-05-01 23:21:02.383236+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction Start LevelDB: 0 changes (0 bytes):>
2020-05-01 23:21:02.384668+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Analytics][I-ACS800023] No pending snapshot to activate. SDK name: app_measurement
2020-05-01 23:21:02.385554+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction Start MutationQueue: 0 changes (0 bytes):>
2020-05-01 23:21:02.385960+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction NextMutationBatchAfterBatchID: 0 changes (0 bytes):>
2020-05-01 23:21:02.386497+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction NextMutationBatchAfterBatchID: 0 changes (0 bytes):>
2020-05-01 23:21:02.386919+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction NextMutationBatchAfterBatchID: 0 changes (0 bytes):>
2020-05-01 23:21:02.387414+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction NextMutationBatchAfterBatchID: 0 changes (0 bytes):>
2020-05-01 23:21:02.393435+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction NextMutationBatchAfterBatchID: 0 changes (0 bytes):>
2020-05-01 23:21:02.394762+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] WriteStream (10603abf8) start
2020-05-01 23:21:02.397491+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Auth][I-AUT000002] Token auto-refresh enabled.
2020-05-01 23:21:02.398005+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Auth][I-AUT000004] Token auto-refresh scheduled in 09:30 for the new token.
2020-05-01 23:21:02.398436+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction Locally write mutations: 3 changes (134 bytes):
  - Put [collection_parent: collection_id=recipes path=users/check@gmail.com] (0 bytes)
  - Put [document_mutation: user_id= path=users/check@gmail.com/recipes/newRecipe batch_id=5] (0 bytes)
  - Put [mutation: user_id= batch_id=5] (134 bytes)>
2020-05-01 23:21:02.399000+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction NotifyLocalViewChanges: 0 changes (0 bytes):>
2020-05-01 23:21:02.399381+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction NextMutationBatchAfterBatchID: 0 changes (0 bytes):>
2020-05-01 23:21:02.399750+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction NextMutationBatchAfterBatchID: 0 changes (0 bytes):>
2020-05-01 23:21:02.400594+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Credential Changed. Current user: jJu5zOCnZSZZ9F2DhTrSk6ULno13
2020-05-01 23:21:02.455811+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction OldBatches: 0 changes (0 bytes):>
2020-05-01 23:21:02.457007+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction Start MutationQueue: 0 changes (0 bytes):>
2020-05-01 23:21:02.457597+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction NewBatches: 0 changes (0 bytes):>
2020-05-01 23:21:02.539680+0300 ShareRecipes[1351:49426] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction NotifyLocalViewChanges: 0 changes (0 bytes):>
2020-05-01 23:21:02.540726+0300 ShareRecipes[1351:49426] 6.19.0 - [Firebase/Firestore][I-FST000001] RemoteStore 1063103e0 restarting streams for new credential
2020-05-01 23:21:02.541134+0300 ShareRecipes[1351:49426] 6.19.0 - [Firebase/Firestore][I-FST000001] WatchStream (106037d38) stop
2020-05-01 23:21:02.541492+0300 ShareRecipes[1351:49426] 6.19.0 - [Firebase/Firestore][I-FST000001] WriteStream (10603abf8) stop
2020-05-01 23:21:02.542363+0300 ShareRecipes[1351:49426] 6.19.0 - [Firebase/Firestore][I-FST000001] Stopping write stream with 5 pending writes
2020-05-01 23:21:02.542766+0300 ShareRecipes[1351:49426] 6.19.0 - [Firebase/Firestore][I-FST000001] Committing transaction: <LevelDbTransaction NextMutationBatchAfterBatchID: 0 changes (0 bytes):>
2020-05-01 23:21:02.551298+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Analytics][I-ACS800003] Registered an SDK that has already registered. Default flags will be overwritten. SDK name: app_measurement
2020-05-01 23:21:02.553117+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Analytics][I-ACS800023] No pending snapshot to activate. SDK name: app_measurement
2020-05-01 23:21:02.553591+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Analytics][I-ACS029014] Successfully parsed a configuration. Version: 1582397991373496
2020-05-01 23:21:02.553616+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Analytics][I-ACS023016] Analytics is ready to receive events
2020-05-01 23:21:02.553635+0300 ShareRecipes[1351:49421] 6.19.0 - [Firebase/Analytics][I-ACS002002] APMExperimentAlarm scheduled to fire in approx. (s): 11580.38193202019
2020-05-01 23:21:02.589480+0300 ShareRecipes[1351:49426] 6.19.0 - [Firebase/Analytics][I-ACS032003] iAd framework is not linked. Search Ad Attribution Reporter is disabled.
2020-05-01 23:21:02.591247+0300 ShareRecipes[1351:49426] 6.19.0 - [Firebase/Analytics][I-ACS002002] Measurement timer scheduled to fire in approx. (s): 780.3073289394379
2020-05-01 23:21:02.594714+0300 ShareRecipes[1351:49426] 6.19.0 - [Firebase/Analytics][I-ACS002002] Engagement timer scheduled to fire in approx. (s): 3600
2020-05-01 23:21:02.594757+0300 ShareRecipes[1351:49426] 6.19.0 - [Firebase/Analytics][I-ACS023012] Analytics collection enabled

По какой-то причине я получаю эту строку в log:

[Firebase/Firestore][I-FST000001] Stopping write stream with 5 pending writes

Похоже, что Firestore пытается выполнить эту запись и затем останавливается, даже если соединение inte rnet стабильно.

Как я могу это исправить?

...