Хорошо, поэтому моя ситуация здесь немного сложная, но в основном у меня есть расширение Apple Watch, связанное с моим приложением, которое использует Firebase для приема и отправки данных. Я хочу использовать те же функции в своих часах, что и приложение, единственная проблема заключается в том, что мне нужно использовать одну и ту же ссылку Firebase, потому что я использую аутентификацию Google, и мне нужно сохранить данные аутентификации одинаково (если нет другого пути). Так что у меня есть часы, это сначала запросить некоторые данные: индекс выбранного таймера (это приложение таймера) и контрольная переменная Firebase. Но когда приложение iPhone использует функцию ответа() и отправляет обратно словарь, как так:Отправка ссылки Firebase на Apple Watch
reply(["replyInfoType": "watchInfo", "selectedTimerKey": keySelected, "refFirebase": ref])
ref
переменная определяется как var ref = Firebase(url:"https://my-app-url.firebaseio.com/")
. Нет компиляции ошибок, но когда я запускаю расширение часов и присоединяюсь к процессу приложения, мое приложение бросает хороший SIGABRT здесь: Ничего не печатается в журнале вообще. Приложение просто падает после того, как я приостановил процесс. У меня нет причин, откуда это происходит. Если я не включаю переменную ref
в словарь, она отлично работает, за исключением того факта, что мое приложение просмотра не имеет права на чтение базы данных Firebase.
Я сделал второй вариант, который вы сказали, просто вернув ссылку, и это сработало для меня. Я не думал, что это произойдет, потому что ссылка Firebase не будет аутентифицирована, но как-то она есть. И у меня есть узлы Firebase, работающие на обоих, и, похоже, они работают нормально. – drewsdunne
@ Slash705 правильно относится к NSUserDefaults. Связано - это документация по аутентификации пользователей с Firebase и Apple Watch https://www.firebase.com/docs/ios/libraries/watchkit/guide.html#section-user-authentication –