ในขั้นตอนการเพิ่ม Firebase ลงในโปรเจ็กต์ Android คุณจะต้องเพิ่ม
ปลั๊กอิน Gradle และ
ไฟล์กำหนดค่าลงในโปรเจ็กต์
หากเพิ่ม Firebase ลงในโปรเจ็กต์ Android โดยใช้Firebaseคอนโซล REST API การจัดการ หรือ FirebaseCLI คุณต้องเพิ่มปลั๊กอิน Gradle และไฟล์กำหนดค่า JSON ลงในโปรเจ็กต์ด้วยตนเอง อย่างไรก็ตาม หากคุณใช้ Firebase Assistant for Android Studio ระบบจะดำเนินการเหล่านี้ให้คุณโดยอัตโนมัติในระหว่างการตั้งค่า
เพิ่มปลั๊กอิน Gradle
คุณเพิ่ม
ปลั๊กอิน Gradle ของบริการของ Google () ลงในไฟล์
build.gradle ดังนี้
dependencies {
classpath 'com.google.gms:google-services:4.5.0'
// ...
}
ปลั๊กอิน Gradle ของบริการของ Google มีฟังก์ชันหลัก 2 อย่างดังนี้
ประมวลผลไฟล์กำหนดค่า
และสร้างทรัพยากร Android ที่ใช้ในโค้ดของแอปได้google-services.json เพิ่มทรัพยากร Dependency สำหรับไลบรารีพื้นฐานที่จำเป็นสำหรับบริการที่คุณเปิดใช้ ขั้นตอนนี้กำหนดให้คุณใช้ปลั๊กอิน Gradle ของบริการของ Google ในไฟล์
app/build.gradleดังนี้
apply plugin: 'com.google.gms.google-services'คุณดูผลลัพธ์ของขั้นตอนนี้ได้โดยเรียกใช้
./gradlew :app:dependencies
เพิ่มไฟล์กำหนดค่า JSON
โดยทั่วไปแล้ว ไฟล์กำหนดค่าจะอยู่ในไดเรกทอรี app/ (ที่รูทของโมดูลแอป Android Studio) ตั้งแต่เวอร์ชัน 2.2.0 ปลั๊กอินรองรับไฟล์ JSON ที่เฉพาะเจาะจงประเภทบิลด์และเวอร์ชันผลิตภัณฑ์ โครงสร้างไดเรกทอรีต่อไปนี้ทั้งหมดถูกต้อง
// dogfood and release are build types.
app/
google-services.json
src/dogfood/google-services.json
src/release/google-services.json
...
เมื่อใช้ผลิตภัณฑ์หลายเวอร์ชัน โครงสร้างไดเรกทอรีที่ซับซ้อนมากขึ้นเหล่านี้จะยังคงใช้ได้
// free and paid are product flavors.
app/
google-services.json
src/dogfood/paid/google-services.json
src/release/free/google-services.json
...
วิธีประมวลผลไฟล์กำหนดค่า JSON
ไฟล์การกำหนดค่า มีโครงสร้างพื้นฐานดังนี้
{
"project_info": {...},
"client": [...],
}
ออบเจ็กต์ project_info มีข้อมูลทั่วไปเกี่ยวกับโปรเจ็กต์ ส่วนสมาชิกแต่ละรายการในอาร์เรย์ client มีข้อมูลเกี่ยวกับไคลเอ็นต์ (แอป Android) ที่คุณเพิ่มลงในโปรเจ็กต์
เมื่อประมวลผลไฟล์ JSON สำหรับแอป Android ปลั๊กอินจะใช้เฉพาะออบเจ็กต์
client ที่ตรงกับชื่อแพ็กเกจ (สำหรับประเภทบิลด์ปัจจุบัน)
ตามตรรกะต่อไปนี้
สำหรับสมาชิกแต่ละคนในอาร์เรย์
clientปลั๊กอินจะตรวจสอบค่าของclient_info/android_client_info/package_nameหากชื่อแพ็กเกจตรงกับค่านี้ ระบบจะแสดงผลออบเจ็กต์สมาชิกหากไม่มีสมาชิกของ
clientที่ตรงกับชื่อแพ็กเกจ ปลั๊กอินจะแสดง ข้อยกเว้น
ส่วนที่เหลือของเอกสารนี้จะใช้ YOUR_CLIENT เพื่ออ้างอิงถึงสมาชิกของอาร์เรย์ client ที่กำหนดโดยตรรกะที่อธิบายไว้ข้างต้น
การสร้างไฟล์ XML
ผลลัพธ์หลักของการประมวลผล JSON คือการสร้างไฟล์ XML 2 ไฟล์ที่คุณสามารถ อ้างอิงเป็นทรัพยากร Android ในโค้ดได้ ตัวอย่างของแต่ละไฟล์มีดังนี้
app/build/generated/res/google-services/{build_type}/values/values.xml<?xml version="1.0" encoding="utf-8"?> <resources> <! -- Present in all applications --> <string name="google_app_id" translatable="false">1:1035469437089:android:73a4fb8297b2cd4f</string> <! -- Present in applications with the appropriate services configured --> <string name="gcm_defaultSenderId" translatable="false">1035469437089</string> <string name="default_web_client_id" translatable="false">337894902146-e4uksm38sne0bqrj6uvkbo4oiu4hvigl.apps.googleusercontent.com</string> <string name="ga_trackingId" translatable="false">UA-65557217-3</string> <string name="firebase_database_url" translatable="false">https://example-url.firebaseio.com</string> <string name="google_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string> <string name="google_crash_reporting_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string> <string name="project_id" translatable="false">mydemoapp</string> </resources>app/build/generated/res/google-services/{flavor}/{build_type}/xml/global_tracker.xml<?xml version="1.0" encoding="utf-8"?> <resources> <string name="ga_trackingId" translatable="false">UA-65557218-3</string> </resources>
ค่าในไฟล์ XML
ค่าทั้งหมดในไฟล์ XML จะอยู่ในไฟล์การกำหนดค่าในตำแหน่งที่ระบุไว้ด้านล่าง หากโปรเจ็กต์ Android มีการกำหนดค่าบางอย่างที่ทำให้คุณใช้ปลั๊กอิน Gradle ไม่ได้ คุณสามารถสร้างไฟล์ XML ขึ้นมาใหม่ด้วยตนเองได้อย่างปลอดภัยโดยใช้ค่าเหล่านี้
google_app_idYOUR_CLIENT/client_info/mobilesdk_app_idgcm_defaultSenderIdproject_info/project_numberdefault_web_client_idYOUR_CLIENT/oauth_client/client_id (client_type == 3)ga_trackingIdYOUR_CLIENT/services/analytics-service/analytics_property/tracking_idfirebase_database_urlproject_info/firebase_urlgoogle_api_keyYOUR_CLIENT/api_key/current_keygoogle_crash_reporting_api_keyYOUR_CLIENT/api_key/current_keyproject_idproject_info/project_id
การแก้ปัญหา
เมื่อสร้าง ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้ File google-services.json is missing from module root folder. The Google Services Plugin cannot function without it
Firebase คอนโซล
จะช่วยให้คุณดาวน์โหลดไฟล์กำหนดค่าได้
หลังจากดาวน์โหลดไฟล์กำหนดค่า แล้ว ให้คัดลอกไฟล์ดังกล่าวลงในโฟลเดอร์ app/ ของโปรเจ็กต์ Android Studio หรือลงในโฟลเดอร์ app/src/{build_type} หากคุณใช้ประเภทบิลด์หลายประเภท
ฉันไม่เห็นสัญลักษณ์อย่าง R.string.gcm_defaultSenderId หรือ R.xml.global_tracker
ตรวจสอบว่าชื่อแพ็กเกจในไฟล์ build.gradle ตรงกับชื่อแพ็กเกจ
ที่คุณป้อนเมื่อสร้างไฟล์ google-services.json หากไม่แน่ใจ
ให้ทำตามขั้นตอนการเริ่มต้นใช้งานอีกครั้งและรับไฟล์ JSON ใหม่