ReactNative Facebook login ด้วย firebase

ReactNative ทำ Login facebook  ด้วย firebase ใครกำลังมองหาอยู่ทำตามนี้เลยครับ  (react-native 0.57.2)

1. เข้า https://console.firebase.google.com สร้าง project firebase download ไฟล์  google-services.json แล้ววางไว้ที่  android/app

2. install react-native-firebase (rnfirebase.io)

donate ให้กับทีมพัฒนา => https://opencollective.com/react-native-firebase/donate

 

3. สั่ง link react native กับ project android/ios  เพราะ react-native-firebase มีการเรียกใช้งานส่วนที่เป็น native code เป็นการ add config ของ react native ให้กับ  project android/ios

ต่อครับ link แค่ช่วยส่วนหนึ่งแต่ไม่ใช่ทั้งหมด (แล้วแต่ library ที่ใช้ด้วย)

ฝั่ง Android (https://rnfirebase.io/docs/v5.x.x/installation/android)

(link ทำให้) add คำสั่ง เข้าไปในไฟล์ android/settings.gradle  ทำให้ android studio มองเห็น project ฝั่ง ReactNative (react-native-firebase)

(link ทำให้แต่ต้องตามไปเปลี่ยนถ้า Gradle plugin 3.+) เพิ่ม dependencies เข้าไปยัง android/app/build.gradle

ถ้า Gradle plugin 3.+ ให้เปลี่ยนคำสั่ง compile เป็น implement

(ทำเอง) ไฟล์  android/app/build.gradle เพิ่มคำสั่งที่ด้านล่างสุดของไฟล์

(ทำเอง)  เพิ่ม Firebase dependencies

 

(ทำเอง) ไฟล์  android/build.gradle   เพิ่ม dependencies

เปิดไฟล์  MainApplication

(link ทำให้) import class RNFirebaseAuthPackage และ new object ใส่ใน array ไว้ตามภาพ
ทำให้มีการเข้าถึง native code ตอน run reactnative app ได้

 

กด Sync project ที่ android studio
ถ้าไม่มีอะไรผิดพลาดก็จะได้หน้าตาประมาณนี้ครับ (ถ้ามีแก้ไขไปตาม error log ที่แสดงครับ เป็นได้หลายกรณี)

 

ฝั่ง  ios (ต้องใช้เครื่อง mac และลง xcode ให้เรียบร้อยก่อนครับ https://rnfirebase.io/docs/v5.x.x/installation/ios)

add ios app เข้าไป firebase project จากนั้น download ไฟล์  GoogleService-Info.plist เพื่อนำไปใส่ใน project ios

(เปิด xcode ลากไฟล์ใส่ folder ตามชื่อ project)

เพิ่ม code เพื่อ import firebase lib และเริ่มการใช้งานที่ไฟล์  ios/[APP NAME]/AppDelegate.m ตามภาพครับ

ต่อนะครับ ไปที่ Podfile (ใครยังไม่สร้างหาวิธี pod init เองนะครับ ขอข้ามขั้นตอนการสร้าง Podfile ไป)

 

จากนั้นก็เปิด terminal มา ไปยัง folder ios  สั่ง run    pod install

xcode -> Product -> build ทดสอบดูว่าผ่านไหม ถ้า Build Success ก็ค่อยไปทำข้อ 4

 

4. ทำ Facebook Login ฝั่ง android

ติดตั้ง react-native-fbsdk

link

 

(ทำเอง) เพิ่ม  android/app/build.gradle

 

(ทำเอง) config เพิ่มที่ MainApplication   (https://github.com/facebook/react-native-fbsdk)

(ทำเอง) config เพิ่มที่ MainActivity

ยังไม่จบ..  ครับ ต้องทำการสร้าง fbapp ของเราเพื่อเอา Fb App Id มาใช้งานพร้อม

ตามนี้ครับ
android app  => https://developers.facebook.com/docs/android/getting-started/
ios app => https://developers.facebook.com/docs/ios/getting-started/

ไปที่ ReactNative Project และ run คำสั่งเพื่อสร้าง folder Frameworks และ โหลด fbsdk ครับ

ลาก  Frameworks ที่จะใช้ใส่ Frameworks ของ project ios

 

เสร็จแล้วลอง run โปรเจ็คผ่าน Android Studio/XCOD ดูว่าไม่มีปัญหา (run ใน emalator หรือ device จริงได้)

ถ้า build ผ่านแต่หน้าจอ ไม่ขึ้นแสดงว่ามี runtime error ก็ไปจัดการ fix error ก่อนนะครับ ค่อยไป step ต่อไป

(ถ้าใครไม่เคยจับ android studio กับ xcode มาก่อน แนะนะให้ไปฝึก project เล็กๆ สักตัวจะได้เข้าใจการทำงานครับ เพราะสุดท้าย ReactNative ก็ต้องไปสั่ง build project ผ่าน android studio กับ xcode อยู่ดีครับ )

ภาพคู่ที่รอคอยครับ

1-4  คือการติดตั้งและ  config ให้ใช้งานได้ของฝั่ง android และ ios

 

5. ทำปุ่ม login

สร้าง layout กับปุ่มในแบบที่ต้องการ

เพิ่ม function login facebook
(code ตามนี้เลยครับ => https://rnfirebase.io/docs/v5.x.x/auth/social-auth)

 

code LoginView ครับ

พอกดก็จะเด้งหน้าแบบนี้มาครับ

หลังจากกรอก email password

console log ดูจะได้ accessToken  userID มาใช้งานครับ

จบครับ