Если вы пытаетесь создать новый проект с помощью NativeScript, Vue.js и Firebase, вы можете столкнуться с несколькими проблемами в процессе. Это краткое руководство должно помочь вам избежать нескольких ловушек, с которыми я сталкивался всякий раз, когда шел по пути.
Мы начнем демонстрационный проект под названием tnsvuefirebasestarter. Если вы хотите увидеть исходный код готового проекта, он доступен здесь:
Сначала начните с создания вашего нового проекта. Я только что установил новую версию Vue CLI 3.0 и никаких проблем не возникло:
$ vue init nativescript-vue/vue-cli-template tnsvuefirebasestarter
Как только шаблон инициализирует ваш проект, перейдите в каталог
$ cd tnsvuefirebasestarter
Теперь установите зависимости с помощью npm. ПРИМЕЧАНИЕ: не используйте пряжу. Я обнаружил, что по какой-то причине каталоги хуков не создаются при использовании пряжи, и это мешает корректной компиляции проекта.
$ npm i
Затем вам нужно открыть консоль firebase и загрузить файлы проекта, которые позволяют приложениям подключаться к firebase. Если вы используете Android, поместите файл google-services.json в каталог template/app/App_Resources/Android
. Для iOS загрузите файл GoogleService-Info.plist и поместите его в template/app/App_Resources/iOS
.
Теперь мы установим плагин firebase. Выполнение этой команды приведет к выполнению шаблона, который спросит вас, какие службы firebase вы хотите включить. ПРИМЕЧАНИЕ. У меня возникли проблемы с компонентом обмена сообщениями, и мне не удалось его скомпилировать или запустить на Android или iOS. Я не знаю, существует ли эта проблема, но, чтобы обойти ее, я решил не включать ее. Кроме того, известно, что при обмене сообщениями на iOS в эмуляторе возникают проблемы. Возможно, вам потребуется протестировать на реальном устройстве.
$ npm i --save nativescript-plugin-firebase
Затем нам нужно перейти в каталог шаблонов и запустить там npm install.
$ cd template $ npm i
На этом мы почти закончили. Давайте подключим наш src / main.js к firebase. Сразу под строкой import './styles.css'
добавьте следующий код:
import firebase from ‘nativescript-plugin-firebase’; firebase.init({ // Optionally pass in properties for database, authentication and cloud messaging, // see their respective docs. }).then( instance => { console.log(“firebase.init done”); }, error => { console.log(`firebase.init error: ${error}`); } ); Vue.prototype.$firebase = firebase;
Теперь убедитесь, что вы запустили чистую перед запуском:
$ npm run clean
На этом этапе ваш проект должен быть готов к работе. Для запуска Android:
$ npm run watch:android
Для iOS запустите:
$ npm run watch:ios
Если все пойдет так, как ожидалось, приложение должно запуститься, и вы должны увидеть в консоли следующее:
JS: 'firebase.init done'
Я хотел бы выразить особую благодарность Джен Лупер, которая работала со мной по выходным, помогая мне разобраться в этом. Если вам нужна дополнительная помощь, есть канал #firebase в NativeScript Community Slack, по которому вы сможете связаться с любым из нас.
Также не забудьте ознакомиться с двумя ее примерами проектов, если вам понадобятся другие примеры:
P.S. Я относительно новичок в мобильной разработке, и у меня возникли проблемы с компиляцией на iOS. Если у вас возникли проблемы с компиляцией iOS, убедитесь, что ваша учетная запись разработчика подключена к xcode, и проверьте проект на наличие ошибок. Вы можете открыть выходной проект xcode после запуска сборки NativeScript по адресу: dist/platforms/ios/dist.xcworkspace
Удачного кодирования!
-g