Есть ли способ использовать Firebase (Аутентификация) с Kotlin Multiplatform? - PullRequest
5 голосов
/ 07 января 2020

У меня есть проект, который использует Аутентификацию Firebase в Android. Он работает хорошо, и я хочу перенести тот же проект в приложение iOS с использованием совместного использования кода с Kotlin Multiplatform.

Сначала я подумал, что могу просто создать

expect class FirebaseAuth

и

//AndroidMain
actual class FirebaseAuth

//iOSMain
actual class FirebaseAuth

Но я действительно не знаю, как я мог бы использовать iOS версию FirebaseAuth в iOSMain? Кто-нибудь может направить меня сюда?

Ответы [ 2 ]

3 голосов
/ 07 января 2020

Я выступил с докладом о библиотеках для KMP и специально создал оболочку для Firestore вместе с go.

https://github.com/touchlab/FirestoreKMP

https://vimeo.com/371460823

В этой библиотеке я создаю функции расширения для реализации функций. Ваш вопрос довольно широкий, но я бы, вероятно, начал с:

//common
expect fun FirebaseAuth.signIn(email:String, password:String):Task<AuthDataResult>

//ios main
actual fun FirebaseAuth.signIn(email:String, password:String):Task<AuthDataResult> = signInWithEmail(email, password) //Figure out async return value

Возвращение asyn c может быть немного сложным, но в коде firestore будут примеры. Один здесь:

https://github.com/touchlab/FirestoreKMP/blob/master/firestore/src/commonMain/kotlin/co/touchlab/firebase/firestore/Query.kt#L17

2 голосов
/ 03 февраля 2020

Я занимаюсь сборкой и публикацией Firebase Wrappers для Kotlin Мультиплатформен!

Имейте в виду, что доступны только общие API для JS, JVM и iOS.

Вот оно: https://github.com/lamba92/firebase-multiplatform

...