คุณสามารถส่งออกข้อมูล Firebase Crashlytics ไปยัง BigQuery เพื่อ วิเคราะห์เพิ่มเติมได้ BigQuery ช่วยให้คุณวิเคราะห์ข้อมูลโดยใช้ BigQuery SQL ส่งออกไปยังผู้ให้บริการระบบคลาวด์รายอื่น และใช้เพื่อ การแสดงภาพและแดชบอร์ดที่กำหนดเองด้วย Google Data Studio
เปิดใช้การส่งออกไปยัง BigQuery
ในFirebaseคอนโซล ให้ไปที่ หน้าการผสานรวม
คลิกลิงก์ในการ์ด BigQuery
ทำตามวิธีการบนหน้าจอเพื่อเปิดใช้การส่งออกไปยัง BigQuery
หากต้องการเข้าถึงข้อมูล Crashlytics แบบเกือบเรียลไทม์ใน BigQuery โปรดพิจารณาอัปเกรดเป็นการส่งออกแบบสตรีม
สิ่งที่จะเกิดขึ้นเมื่อคุณเปิดใช้การส่งออก
คุณเลือกตำแหน่งชุดข้อมูล หลังจากสร้างชุดข้อมูลแล้ว คุณจะเปลี่ยนแปลงตำแหน่งไม่ได้ แต่จะคัดลอกชุดข้อมูลไปยังตำแหน่งอื่นหรือย้าย (สร้างใหม่) ชุดข้อมูลไปยังตำแหน่งอื่นด้วยตนเองได้ ดูข้อมูลเพิ่มเติมได้ที่เปลี่ยนตำแหน่งสำหรับการส่งออกที่มีอยู่
ตำแหน่งนี้ใช้ได้กับข้อมูลที่ส่งออกไปยัง BigQuery เท่านั้น และจะไม่ส่งผลต่อตำแหน่งของข้อมูลที่จัดเก็บไว้เพื่อใช้ในแดชบอร์ด Crashlytics ของคอนโซล Firebase หรือใน Android Studio
แอปทั้งหมดในโปรเจ็กต์ลิงก์อยู่กับ BigQuery โดยค่าเริ่มต้น และแอปที่เพิ่มในโปรเจ็กต์ภายหลังจะลิงก์กับ BigQuery โดยอัตโนมัติด้วยเช่นกัน คุณสามารถ จัดการแอปที่ส่งข้อมูลได้
Firebase จะตั้งค่าการซิงค์ข้อมูลกับ BigQuery ทุกวัน
หลังจากลิงก์โปรเจ็กต์แล้ว โดยปกติคุณจะต้องรอจนกว่าจะถึงการซิงค์ในวันถัดไป จึงจะส่งออกชุดข้อมูลแรกไปยัง BigQuery ได้
การซิงค์รายวันจะเกิดขึ้นวันละครั้ง ไม่ว่าคุณจะตั้งค่าการส่งออกตามกำหนดการไว้ใน BigQuery หรือไม่ก็ตาม โปรดทราบว่าเวลาและ ระยะเวลาของงานซิงค์อาจเปลี่ยนแปลงได้ ดังนั้นเราจึงไม่แนะนำให้กำหนดเวลา การดำเนินการหรือการทำงานขั้นปลายตามเวลาที่เฉพาะเจาะจงของการส่งออก
Firebase ส่งออกสำเนาข้อมูลที่มีอยู่ ไปยัง BigQuery การเผยแพร่ข้อมูลเริ่มต้นสำหรับการส่งออกอาจใช้เวลาถึง 48 ชั่วโมง
สําหรับแอปที่ลิงก์แต่ละแอป การส่งออกนี้จะมีตารางกลุ่มที่มีข้อมูล จากการซิงค์รายวัน
คุณสามารถกำหนดเวลาการป้อนข้อมูลย้อนหลังด้วยตนเอง สำหรับตารางกลุ่มได้ย้อนหลังสูงสุด 30 วัน หรือสำหรับวันที่ล่าสุด เมื่อเปิดใช้การส่งออกไปยัง BigQuery (แล้วแต่ว่าวันที่ใดล่าสุด)
โปรดทราบว่าหากเปิดใช้การส่งออกข้อมูล Crashlytics ก่อน ช่วงกลางเดือนตุลาคม 2024 คุณจะสามารถทำการป้อนข้อมูลย้อนหลังได้ 30 วันก่อนวันที่คุณเปิดใช้ การส่งออก
หากคุณเปิดใช้Crashlyticsการส่งออกแบบสตรีมไปยัง BigQuery แอปที่ลิงก์ทั้งหมดจะมีตารางเรียลไทม์ที่มีข้อมูลที่อัปเดตอยู่ตลอดเวลาด้วย
หากต้องการปิดใช้งานการส่งออกไปยัง BigQuery ยกเลิกการลิงก์โปรเจ็กต์ ในคอนโซล Firebase
ระบบจะส่งออกข้อมูลใดไปยัง BigQuery
ระบบจะส่งออกข้อมูล Firebase Crashlytics ไปยังชุดข้อมูล BigQuery ชื่อ
firebase_crashlytics
โดยค่าเริ่มต้น ระบบจะสร้างตารางแต่ละรายการภายในชุดข้อมูล Crashlytics สำหรับแต่ละแอปในโปรเจ็กต์ Firebase จะตั้งชื่อ
ตารางตามตัวระบุของแอป โดยจะแปลงจุดเป็นขีดล่าง และ
ต่อท้ายด้วยชื่อแพลตฟอร์ม
เช่น ข้อมูลสำหรับแอป Android ที่มีชื่อแพ็กเกจ com.google.test
จะอยู่ในตารางชื่อ com_google_test_ANDROID
ตารางกลุ่มนี้จะอัปเดต
วันละครั้ง หากเปิดใช้Crashlyticsการส่งออกแบบสตรีมไปยัง
BigQuery ระบบจะสตรีมCrashlyticsข้อมูลแบบเรียลไทม์
ไปยังตารางชื่อ com_google_test_ANDROID_REALTIME
ด้วย
แต่ละแถวในตารางแสดงถึงเหตุการณ์ที่เกิดขึ้นในแอป ซึ่งรวมถึง การขัดข้อง ข้อผิดพลาดที่ไม่ร้ายแรง และ ANR
Crashlytics การส่งออกแบบสตรีมไปยัง BigQuery
คุณสามารถสตรีมข้อมูล Crashlytics แบบเรียลไทม์ด้วยBigQuery การสตรีม คุณสามารถใช้สำหรับวัตถุประสงค์ใดก็ตามที่ต้องใช้ข้อมูลแบบเรียลไทม์ เช่น การนำเสนอ ข้อมูลในแดชบอร์ดแบบเรียลไทม์ การดูการเปิดตัวแบบเรียลไทม์ หรือการตรวจสอบ ปัญหาของแอปพลิเคชันที่ทริกเกอร์การแจ้งเตือนและเวิร์กโฟลว์ที่กำหนดเอง
เมื่อเปิดใช้Crashlyticsการส่งออกแบบสตรีมไปยัง BigQuery นอกเหนือจากตารางแบบกลุ่มแล้ว คุณจะมีตารางแบบเรียลไทม์ด้วย ความแตกต่างระหว่างตารางที่คุณควรทราบมีดังนี้
ตารางกลุ่ม | ตารางแบบเรียลไทม์ |
---|---|
|
|
ตารางกลุ่มเหมาะสําหรับการวิเคราะห์ระยะยาวและการระบุแนวโน้มเมื่อเวลาผ่านไป เนื่องจากเราจัดเก็บเหตุการณ์อย่างถาวรก่อนที่จะเขียน และสามารถป้อนข้อมูลย้อนหลัง ลงในตารางได้นานสูงสุด 30 วัน* เมื่อเขียนข้อมูลลงในตารางแบบเรียลไทม์ เราจะเขียนข้อมูลลงใน BigQuery ทันที จึงเหมาะสําหรับแดชบอร์ดแบบเรียลไทม์และการแจ้งเตือนที่กําหนดเอง ตารางทั้ง 2 ตารางนี้รวมกับการค้นหาการเย็บเพื่อรับ ประโยชน์จากทั้ง 2 ตารางได้
โดยค่าเริ่มต้น ตารางแบบเรียลไทม์จะมีเวลาหมดอายุของพาร์ติชันเป็น 30 วัน หากต้องการ ดูวิธีแก้ไข ให้ไปที่ตั้งค่าการหมดอายุของพาร์ติชัน ในเอกสารประกอบของ BigQuery
* ดูรายละเอียดเกี่ยวกับการรองรับการแสดงโฆษณาสำรองได้ใน อัปเกรดเป็นโครงสร้างพื้นฐานการส่งออกใหม่
เปิดใช้Crashlyticsการส่งออกสตรีมไปยัง BigQuery
ในFirebaseคอนโซล ให้ไปที่ หน้าการผสานรวม
คลิกจัดการในการ์ด BigQuery
เลือกช่องทำเครื่องหมายรวมการสตรีม
การดำเนินการนี้จะเปิดใช้การสตรีมสำหรับแอปที่ลิงก์ทั้งหมด
คุณทำอะไรกับข้อมูลที่ส่งออกได้บ้าง
การส่งออกไปยัง BigQuery มีข้อมูลข้อขัดข้องดิบ ซึ่งรวมถึงประเภทอุปกรณ์ ระบบปฏิบัติการ ข้อยกเว้น (แอป Android) หรือข้อผิดพลาด (แอป Apple) และ Crashlytics บันทึก รวมถึงข้อมูลอื่นๆ
โปรดดูว่าระบบส่งออกข้อมูล Crashlytics ใดบ้างและสคีมาของตารางในหน้านี้
ใช้เทมเพลต Data Studio
หากต้องการเปิดใช้ข้อมูลแบบเรียลไทม์ในเทมเพลต Data Studio ให้ทําตาม วิธีการใน การแสดงภาพข้อมูล Crashlytics ที่ส่งออกด้วย Data Studio
สร้างมุมมอง
คุณเปลี่ยนการค้นหาเป็นมุมมองได้โดยใช้ BigQuery UI ดูวิธีการโดยละเอียดได้ที่หัวข้อสร้างมุมมองในเอกสารประกอบของBigQuery
เรียกใช้การค้นหา
ตัวอย่างต่อไปนี้แสดงคําค้นหาที่คุณเรียกใช้ในCrashlyticsข้อมูลเพื่อสร้างรายงานที่รวบรวมข้อมูลเหตุการณ์ข้อขัดข้องเป็นสรุปที่เข้าใจได้ง่ายขึ้น เนื่องจากรายงานประเภทเหล่านี้ไม่มีในแดชบอร์ดของคอนโซล CrashlyticsFirebase จึงสามารถช่วยเสริมการวิเคราะห์และความเข้าใจเกี่ยวกับข้อมูลข้อขัดข้อง
ตัวอย่างที่ 1: ข้อขัดข้องตามวัน
หลังจากพยายามแก้ไขข้อบกพร่องให้ได้มากที่สุดแล้ว คุณคิดว่าในที่สุดทีมของคุณก็พร้อมที่จะเปิดตัวแอปแชร์รูปภาพใหม่ ก่อนที่จะเปิดตัว คุณต้องการตรวจสอบจำนวนข้อขัดข้องต่อวันในช่วงเดือนที่ผ่านมา เพื่อให้แน่ใจว่าการแก้ไขข้อบกพร่องทำให้แอปมีความเสถียรมากขึ้นเมื่อเวลาผ่านไป
นี่คือตัวอย่างการค้นหาสำหรับแอป Android สำหรับแอป iOS ให้ใช้รหัสชุด
และ IOS
(แทนชื่อแพ็กเกจและ ANDROID
)
SELECT COUNT(DISTINCT event_id) AS number_of_crashes, FORMAT_TIMESTAMP("%F", event_timestamp) AS date_of_crashes FROM `PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID` GROUP BY date_of_crashes ORDER BY date_of_crashes DESC LIMIT 30;
ตัวอย่างที่ 2: ค้นหาข้อขัดข้องที่เกิดขึ้นบ่อยที่สุด
หากต้องการจัดลําดับความสําคัญของแผนการผลิตอย่างเหมาะสม คุณต้องค้นหาข้อขัดข้องที่พบบ่อยที่สุด 10 อันดับแรกในแอปของคุณ คุณสร้างคําค้นหาที่ให้จุดข้อมูลที่เกี่ยวข้อง
นี่คือตัวอย่างการค้นหาสำหรับแอป Android สำหรับแอป iOS ให้ใช้รหัสชุด
และ IOS
(แทนชื่อแพ็กเกจและ ANDROID
)
SELECT DISTINCT issue_id, COUNT(DISTINCT event_id) AS number_of_crashes, COUNT(DISTINCT installation_uuid) AS number_of_impacted_user, blame_frame.file, blame_frame.line FROM `PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID` WHERE event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(),INTERVAL 168 HOUR) AND event_timestamp < CURRENT_TIMESTAMP() GROUP BY issue_id, blame_frame.file, blame_frame.line ORDER BY number_of_crashes DESC LIMIT 10;
ตัวอย่างที่ 3: อุปกรณ์ 10 อันดับแรกที่เกิดข้อขัดข้อง
ฤดูใบไม้ร่วงเป็นช่วงเวลาที่เหมาะกับการซื้อโทรศัพท์เครื่องใหม่ บริษัทของคุณทราบดีว่านี่หมายถึงช่วงเวลาที่ปัญหาเฉพาะอุปกรณ์ใหม่ๆ เกิดขึ้น โดยเฉพาะอย่างยิ่งสำหรับ Android คุณได้สร้างคําค้นหาที่ระบุอุปกรณ์ 10 เครื่องที่เกิดข้อขัดข้องมากที่สุดในช่วงสัปดาห์ที่ผ่านมา (168 ชั่วโมง) เพื่อเตรียมพร้อมรับมือกับความกังวลเรื่องความเข้ากันได้ที่กำลังจะเกิดขึ้น
นี่คือตัวอย่างการค้นหาสำหรับแอป Android สำหรับแอป iOS ให้ใช้รหัสชุด
และ IOS
(แทนชื่อแพ็กเกจและ ANDROID
)
SELECT device.model, COUNT(DISTINCT event_id) AS number_of_crashes FROM `PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID` WHERE event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 168 HOUR) AND event_timestamp < CURRENT_TIMESTAMP() GROUP BY device.model ORDER BY number_of_crashes DESC LIMIT 10;
ตัวอย่างที่ 4: กรองตามคีย์ที่กำหนดเอง
คุณเป็นนักพัฒนาเกมที่ต้องการทราบว่าเกมระดับใดที่เกิดข้อขัดข้องมากที่สุด
คุณตั้งค่าคีย์Crashlyticsที่กำหนดเอง
ชื่อ current_level
และอัปเดตทุกครั้งที่ผู้ใช้เลื่อนระดับเพื่อช่วยติดตามสถิตินั้น
Swift
Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");
Objective-C
CrashlyticsKit setIntValue:3 forKey:@"current_level";
Java
Crashlytics.setInt("current_level", 3);
เมื่อมีคีย์ดังกล่าวในไฟล์ส่งออกไปยัง BigQuery คุณจะเขียนการค้นหาเพื่อ
รายงานการกระจายค่า current_level
ที่เชื่อมโยงกับเหตุการณ์
ข้อขัดข้องแต่ละรายการได้
นี่คือตัวอย่างการค้นหาสำหรับแอป Android สำหรับแอป iOS ให้ใช้รหัสชุด
และ IOS
(แทนชื่อแพ็กเกจและ ANDROID
)
SELECT
COUNT(DISTINCT event_id) AS num_of_crashes,
value
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`
UNNEST(custom_keys)
WHERE
key = "current_level"
GROUP BY
key,
value
ORDER BY
num_of_crashes DESC
ตัวอย่างที่ 5: การแยก User-ID
คุณมีแอป Android ในเวอร์ชันทดลองใช้ก่อนเปิดตัว ผู้ใช้ส่วนใหญ่ชอบแอปของคุณ แต่มีผู้ใช้ 3 รายที่พบการขัดข้องมากกว่าปกติ หากต้องการหาสาเหตุของปัญหา คุณต้องเขียนคําค้นหาที่ดึงเหตุการณ์ข้อขัดข้องทั้งหมดสําหรับผู้ใช้เหล่านั้น โดยใช้รหัสผู้ใช้
นี่คือตัวอย่างการค้นหาสำหรับแอป Android สำหรับแอป iOS ให้ใช้รหัสชุด
และ IOS
(แทนชื่อแพ็กเกจและ ANDROID
)
SELECT *
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`
WHERE
user.id IN ("USER_ID_1", "USER_ID_2", "USER_ID_3")
ORDER BY
user.id
ตัวอย่างที่ 6: ค้นหาผู้ใช้ทั้งหมดที่พบปัญหาข้อขัดข้องหนึ่งๆ
ทีมของคุณเผยแพร่ข้อบกพร่องร้ายแรงไปยังกลุ่มผู้ทดสอบเวอร์ชันเบต้าโดยไม่ได้ตั้งใจ ทีมของคุณใช้คำค้นหาจากตัวอย่าง"ค้นหาข้อขัดข้องที่เกิดขึ้นบ่อยที่สุด" ด้านบนเพื่อระบุรหัสปัญหาข้อขัดข้องที่เฉพาะเจาะจงได้ ตอนนี้ทีมของคุณต้องการเรียกใช้ การค้นหาเพื่อดึงรายชื่อผู้ใช้แอปที่ได้รับผลกระทบจากข้อขัดข้องนี้
นี่คือตัวอย่างการค้นหาสำหรับแอป Android สำหรับแอป iOS ให้ใช้รหัสชุด
และ IOS
(แทนชื่อแพ็กเกจและ ANDROID
)
SELECT user.id as user_id
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`
WHERE
issue_id = "ISSUE_ID"
AND application.display_version = "APP_VERSION"
AND user.id != ""
ORDER BY
user.id;
ตัวอย่างที่ 7: จำนวนผู้ใช้ที่ได้รับผลกระทบจากปัญหาการขัดข้อง แยกตามประเทศ
ทีมของคุณตรวจพบข้อบกพร่องร้ายแรงระหว่างการเปิดตัวรุ่นใหม่ คุณใช้คำค้นหาจากตัวอย่าง"ค้นหาข้อขัดข้องที่เกิดขึ้นบ่อยที่สุด" ด้านบนเพื่อระบุรหัสปัญหาข้อขัดข้องที่เฉพาะเจาะจงได้ ตอนนี้ทีมของคุณต้องการทราบว่าข้อขัดข้องนี้ได้แพร่กระจายไปยังผู้ใช้ในประเทศต่างๆ ทั่วโลกหรือไม่
หากต้องการเขียนคําค้นหานี้ ทีมของคุณจะต้องทําสิ่งต่อไปนี้
เปิดใช้การส่งออกข้อมูล Google Analytics ไปยัง BigQuery ดูส่งออกข้อมูลโปรเจ็กต์ไปยัง BigQuery
อัปเดตแอปเพื่อส่งรหัสผู้ใช้ไปยังทั้ง Google Analytics SDK และ Crashlytics SDK
Swift
Crashlytics.sharedInstance().setUserIdentifier("123456789"); Analytics.setUserID("123456789");
Objective-C
CrashlyticsKit setUserIdentifier:@"123456789"; FIRAnalytics setUserID:@"12345678 9";
Java
Crashlytics.setUserIdentifier("123456789"); mFirebaseAnalytics.setUserId("123456789");
เขียนคําค้นหาที่ใช้ฟิลด์รหัสผู้ใช้เพื่อรวมเหตุการณ์ในชุดข้อมูล Google Analytics กับข้อขัดข้องในชุดข้อมูล Crashlytics
นี่คือตัวอย่างการค้นหาสำหรับแอป Android สำหรับแอป iOS ให้ใช้รหัสชุดและ
IOS
(แทนชื่อแพ็กเกจและANDROID
)SELECT DISTINCT c.issue_id, a.geo.country, COUNT(DISTINCT c.user.id) as num_users_impacted FROM `PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID` c INNER JOIN `PROJECT_ID.analytics_TABLE_NAME.events_*` a on c.user.id = a.user_id WHERE c.issue_id = "ISSUE_ID" AND a._TABLE_SUFFIX BETWEEN '20190101' AND '20200101' GROUP BY c.issue_id, a.geo.country, c.user.id
ตัวอย่างที่ 8: ปัญหา 5 อันดับแรกในวันนี้
นี่คือตัวอย่างการค้นหาสำหรับแอป Android สำหรับแอป iOS ให้ใช้รหัสชุด
และ IOS
(แทนชื่อแพ็กเกจและ ANDROID
)
SELECT issue_id, COUNT(DISTINCT event_id) AS events FROM `PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID_REALTIME` WHERE DATE(event_timestamp) = CURRENT_DATE() GROUP BY issue_id ORDER BY events DESC LIMIT 5;
ตัวอย่างที่ 9: ปัญหา 5 อันดับแรกตั้งแต่วันที่ DATE รวมถึงวันนี้
นอกจากนี้ คุณยังรวมตารางแบบกลุ่มและแบบเรียลไทม์เข้ากับคําค้นหาการเย็บเพื่อเพิ่ม
ข้อมูลแบบเรียลไทม์ลงในข้อมูลแบบกลุ่มที่เชื่อถือได้ เนื่องจาก event_id
เป็นคีย์หลัก คุณจึงใช้ DISTINCT event_id
เพื่อขจัดข้อมูลที่ซ้ำกันของกิจกรรมทั่วไปจากตารางทั้ง 2 ตารางได้
นี่คือตัวอย่างการค้นหาสำหรับแอป Android สำหรับแอป iOS ให้ใช้รหัสชุด
และ IOS
(แทนชื่อแพ็กเกจและ ANDROID
)
SELECT issue_id, COUNT(DISTINCT event_id) AS events FROM ( SELECT issue_id, event_id, event_timestamp FROM `PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID_REALTIME` UNION ALL SELECT issue_id, event_id, event_timestamp FROM `PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`) WHERE event_timestamp >= "YYYY_MM_DD" GROUP BY issue_id ORDER BY events DESC LIMIT 5;
ทำความเข้าใจสคีมา Crashlytics ใน BigQuery
เมื่อตั้งค่าCrashlyticsการส่งออกข้อมูลไปยัง BigQuery Firebase จะส่งออกเหตุการณ์ล่าสุด (ข้อขัดข้อง, ข้อผิดพลาดที่ไม่ร้ายแรง และ ANR) รวมถึงเหตุการณ์ จาก 2 วันก่อนการลิงก์ โดยมีตัวเลือกในการป้อนข้อมูลย้อนหลัง ได้สูงสุด 30 วัน
นับจากนั้นจนกว่าคุณจะปิดใช้งานการส่งออก Firebase จะส่งออกเหตุการณ์Crashlyticsทุกวัน อาจใช้เวลา 2-3 นาทีที่ข้อมูลจะพร้อมใช้งานใน BigQuery หลังจากส่งออกแต่ละครั้ง
ชุดข้อมูล
Crashlytics จะสร้างชุดข้อมูลใหม่ใน BigQuery สำหรับข้อมูล Crashlytics ชุดข้อมูลครอบคลุมทั้งโปรเจ็กต์ แม้ว่าจะมีหลายแอปก็ตาม
ตาราง
Crashlytics จะสร้างตารางในชุดข้อมูลสําหรับแต่ละแอปในโปรเจ็กต์ เว้นแต่คุณจะเลือกไม่ใช้การส่งออกข้อมูลสําหรับแอปนั้น Firebase จะตั้งชื่อ ตารางตามตัวระบุของแอป โดยจะแปลงจุดเป็นขีดล่าง และ ต่อท้ายด้วยชื่อแพลตฟอร์ม
เช่น ข้อมูลสำหรับแอป Android ที่มีชื่อแพ็กเกจ com.google.test
จะอยู่ในตารางชื่อ com_google_test_ANDROID
และข้อมูลแบบเรียลไทม์
(หากเปิดใช้) จะอยู่ในตารางชื่อ com_google_test_ANDROID_REALTIME
ตารางมีชุดCrashlyticsข้อมูลมาตรฐานนอกเหนือจากคีย์Crashlyticsที่กำหนดเอง ที่คุณกำหนดไว้ในแอป
แถว
แต่ละแถวในตารางแสดงข้อผิดพลาดที่แอปพบ
คอลัมน์
คอลัมน์ในตารางจะเหมือนกันสำหรับข้อขัดข้อง ข้อผิดพลาดที่ไม่ร้ายแรง และ ANR หากเปิดใช้ Crashlyticsการส่งออกแบบสตรีมไปยัง BigQuery ตาราง เรียลไทม์จะมีคอลัมน์เหมือนกับตารางแบบกลุ่ม โปรดทราบว่าคุณอาจ มีคอลัมน์ในแถวที่แสดงเหตุการณ์ที่ไม่มี Stack Trace
คอลัมน์ภายในการส่งออกแสดงรายการอยู่ในตารางนี้
ชื่อช่อง | ประเภทข้อมูล | คำอธิบาย |
---|---|---|
platform |
STRING | แพลตฟอร์มของแอปตามที่ลงทะเบียนไว้ในโปรเจ็กต์ Firebase
(ค่าที่ใช้ได้: IOS หรือ ANDROID )
|
bundle_identifier |
STRING | ตัวระบุที่ไม่ซ้ำกันสำหรับแอปตามที่ลงทะเบียนไว้ในโปรเจ็กต์ Firebase
(เช่น com.google.gmail สำหรับแอปแพลตฟอร์ม Apple นี่คือรหัสแพ็กเกจของแอป สำหรับแอป Android นี่คือชื่อแพ็กเกจของแอป |
event_id |
STRING | รหัสที่ไม่ซ้ำกันสำหรับเหตุการณ์ |
is_fatal |
BOOLEAN | แอปขัดข้องหรือไม่ |
error_type |
STRING | ประเภทข้อผิดพลาดของเหตุการณ์ (เช่น FATAL ,
NON_FATAL , ANR ฯลฯ) |
issue_id |
STRING | ปัญหาที่เชื่อมโยงกับเหตุการณ์ |
variant_id |
STRING | รูปแบบปัญหาที่เชื่อมโยงกับเหตุการณ์นี้ โปรดทราบว่าเหตุการณ์บางรายการอาจไม่มีรูปแบบปัญหาที่เชื่อมโยง |
event_timestamp |
การประทับเวลา | เมื่อเกิดเหตุการณ์ |
device |
RECORD | อุปกรณ์ที่เกิดเหตุการณ์ |
device.manufacturer |
STRING | ผู้ผลิตอุปกรณ์ |
device.model |
STRING | รุ่นอุปกรณ์ |
device.architecture |
STRING | เช่น X86_32 , X86_64 , ARMV7 ,
ARM64 , ARMV7S หรือ ARMV7K |
memory |
RECORD | สถานะหน่วยความจำของอุปกรณ์ |
memory.used |
INT64 | ไบต์ของหน่วยความจำที่ใช้ |
memory.free |
INT64 | หน่วยความจำที่เหลือเป็นไบต์ |
storage |
RECORD | พื้นที่เก็บข้อมูลถาวรของอุปกรณ์ |
storage.used |
INT64 | ไบต์ของพื้นที่เก็บข้อมูลที่ใช้ |
storage.free |
INT64 | ไบต์ของพื้นที่เก็บข้อมูลที่เหลือ |
operating_system |
RECORD | รายละเอียดของระบบปฏิบัติการในอุปกรณ์ |
operating_system.display_version |
STRING | เวอร์ชันของระบบปฏิบัติการในอุปกรณ์ |
operating_system.name |
STRING | ชื่อของระบบปฏิบัติการในอุปกรณ์ |
operating_system.modification_state |
STRING | อุปกรณ์ได้รับการแก้ไขหรือไม่
(เช่น แอปที่เจลเบรกแล้วคือ MODIFIED และแอปที่รูทแล้วคือ
UNMODIFIED ) |
operating_system.type |
STRING | (แอป Apple เท่านั้น) ประเภทของระบบปฏิบัติการที่ทำงานบนอุปกรณ์ (เช่น
IOS , MACOS ฯลฯ) |
operating_system.device_type |
STRING | ประเภทอุปกรณ์ (เช่น MOBILE , TABLET ,
TV ฯลฯ) หรือที่เรียกว่า "หมวดหมู่อุปกรณ์" |
application |
RECORD | แอปที่สร้างเหตุการณ์ |
application.build_version |
STRING | เวอร์ชันบิลด์ของแอป |
application.display_version |
STRING | |
user |
RECORD | (ไม่บังคับ) ข้อมูลที่รวบรวมเกี่ยวกับผู้ใช้แอป |
user.name |
STRING | (ไม่บังคับ) ชื่อของผู้ใช้ |
user.email |
STRING | (ไม่บังคับ) อีเมลของผู้ใช้ |
user.id |
STRING | (ไม่บังคับ) รหัสเฉพาะแอปที่เชื่อมโยงกับผู้ใช้ |
custom_keys |
บันทึกซ้ำ | คู่คีย์-ค่าที่นักพัฒนาแอปกำหนด |
custom_keys.key |
STRING | คีย์ที่นักพัฒนาแอปกำหนด |
custom_keys.value |
STRING | ค่าที่นักพัฒนาแอปกำหนด |
installation_uuid |
STRING | รหัสที่ระบุการติดตั้งแอปและอุปกรณ์ที่ไม่ซ้ำกัน |
crashlytics_sdk_versions |
STRING | Crashlytics เวอร์ชัน SDK ที่สร้างเหตุการณ์ |
app_orientation |
STRING | เช่น PORTRAIT , LANDSCAPE ,
FACE_UP , FACE_DOWN เป็นต้น |
device_orientation |
STRING | เช่น PORTRAIT , LANDSCAPE ,
FACE_UP , FACE_DOWN เป็นต้น |
process_state |
STRING | BACKGROUND หรือ FOREGROUND |
logs |
บันทึกซ้ำ | ข้อความบันทึกที่มีการประทับเวลาซึ่งสร้างโดย Crashlytics logger หากเปิดใช้ |
logs.timestamp |
การประทับเวลา | เวลาที่สร้างบันทึก |
logs.message |
STRING | ข้อความที่บันทึก |
breadcrumbs |
บันทึกซ้ำ | Google Analyticsเบรดครัมบ์ที่มีการประทับเวลา หากเปิดใช้ |
breadcrumbs.timestamp |
การประทับเวลา | การประทับเวลาที่เชื่อมโยงกับ Breadcrumb |
breadcrumbs.name |
STRING | ชื่อที่เชื่อมโยงกับ Breadcrumb |
breadcrumbs.params |
บันทึกซ้ำ | พารามิเตอร์ที่เชื่อมโยงกับ Breadcrumb |
breadcrumbs.params.key |
STRING | คีย์พารามิเตอร์ที่เชื่อมโยงกับเส้นทาง |
breadcrumbs.params.value |
STRING | ค่าพารามิเตอร์ที่เชื่อมโยงกับ Breadcrumb |
blame_frame |
RECORD | เฟรมที่ระบุว่าเป็นสาเหตุของข้อขัดข้องหรือข้อผิดพลาด |
blame_frame.line |
INT64 | หมายเลขบรรทัดของไฟล์ของเฟรม |
blame_frame.file |
STRING | ชื่อของไฟล์เฟรม |
blame_frame.symbol |
STRING | สัญลักษณ์ที่ไฮเดรตแล้ว หรือสัญลักษณ์ดิบหากไฮเดรตไม่ได้ |
blame_frame.offset |
INT64 | ออฟเซ็ตไบต์ในรูปภาพไบนารีที่มีโค้ด ไม่ได้ตั้งค่าสำหรับข้อยกเว้นของ Java |
blame_frame.address |
INT64 | ที่อยู่ในรูปภาพไบนารีที่มีโค้ด ไม่ได้ตั้งค่าสำหรับเฟรม Java |
blame_frame.library |
STRING | ชื่อที่แสดงของไลบรารีที่มีเฟรม |
blame_frame.owner |
STRING | เช่น DEVELOPER , VENDOR ,
RUNTIME , PLATFORM หรือ SYSTEM |
blame_frame.blamed |
BOOLEAN | ไม่ว่า Crashlytics จะพิจารณาว่าเฟรมนี้เป็นสาเหตุของการขัดข้อง หรือข้อผิดพลาดหรือไม่ |
exceptions |
บันทึกซ้ำ | (Android เท่านั้น) ข้อยกเว้นที่เกิดขึ้นระหว่างเหตุการณ์นี้ ระบบจะแสดงข้อยกเว้นที่ซ้อนกันตามลำดับเวลาแบบย้อนกลับ ซึ่งหมายความว่า บันทึกล่าสุดคือข้อยกเว้นแรกที่เกิดขึ้น |
exceptions.type |
STRING | ประเภทข้อยกเว้น
(เช่น java.lang.IllegalStateException) |
exceptions.exception_message |
STRING | ข้อความที่เชื่อมโยงกับข้อยกเว้น |
exceptions.nested |
BOOLEAN | เป็นจริงสำหรับข้อยกเว้นทั้งหมด ยกเว้นข้อยกเว้นที่ส่งล่าสุด (หมายถึงระเบียนแรก) |
exceptions.title |
STRING | ชื่อของชุดข้อความ |
exceptions.subtitle |
STRING | คำบรรยายของเธรด |
exceptions.blamed |
BOOLEAN | เป็นจริงหาก Crashlytics ระบุว่าข้อยกเว้นเป็นสาเหตุของข้อผิดพลาดหรือข้อขัดข้อง |
exceptions.frames |
บันทึกซ้ำ | เฟรมที่เชื่อมโยงกับข้อยกเว้น |
exceptions.frames.line |
INT64 | หมายเลขบรรทัดของไฟล์ของเฟรม |
exceptions.frames.file |
STRING | ชื่อของไฟล์เฟรม |
exceptions.frames.symbol |
STRING | สัญลักษณ์ที่ไฮเดรตแล้ว หรือสัญลักษณ์ดิบหากไฮเดรตไม่ได้ |
exceptions.frames.offset |
INT64 | ออฟเซ็ตไบต์ในรูปภาพไบนารีที่มีโค้ด ไม่ได้ตั้งค่าสำหรับข้อยกเว้นของ Java |
exceptions.frames.address |
INT64 | ที่อยู่ในรูปภาพไบนารีที่มีโค้ด ไม่ได้ตั้งค่าสำหรับเฟรม Java |
exceptions.frames.library |
STRING | ชื่อที่แสดงของไลบรารีที่มีเฟรม |
exceptions.frames.owner |
STRING | เช่น DEVELOPER , VENDOR ,
RUNTIME , PLATFORM หรือ SYSTEM |
exceptions.frames.blamed |
BOOLEAN | ไม่ว่า Crashlytics จะพิจารณาว่าเฟรมนี้เป็นสาเหตุของการขัดข้อง หรือข้อผิดพลาดหรือไม่ |
error |
บันทึกซ้ำ | ข้อผิดพลาดที่ไม่ร้ายแรง(แอปของ Apple เท่านั้น) |
error.queue_name |
STRING | คิวที่ชุดข้อความทำงานอยู่ |
error.code |
INT64 | รหัสข้อผิดพลาดที่เชื่อมโยงกับ NSError ที่บันทึกไว้ที่กำหนดเองของแอป |
error.title |
STRING | ชื่อของชุดข้อความ |
error.subtitle |
STRING | คำบรรยายของเธรด |
error.blamed |
BOOLEAN | ไม่ว่าCrashlyticsจะพิจารณาว่าเฟรมนี้เป็นสาเหตุของ ข้อผิดพลาดหรือไม่ |
error.frames |
บันทึกซ้ำ | เฟรมของ Stacktrace |
error.frames.line |
INT64 | หมายเลขบรรทัดของไฟล์ของเฟรม |
error.frames.file |
STRING | ชื่อของไฟล์เฟรม |
error.frames.symbol |
STRING | สัญลักษณ์ที่ไฮเดรตแล้ว หรือสัญลักษณ์ดิบหากไฮเดรตไม่ได้ |
error.frames.offset |
INT64 | ออฟเซ็ตไบต์ในรูปภาพไบนารีที่มีโค้ด |
error.frames.address |
INT64 | ที่อยู่ในรูปภาพไบนารีที่มีโค้ด |
error.frames.library |
STRING | ชื่อที่แสดงของไลบรารีที่มีเฟรม |
error.frames.owner |
STRING | เช่น DEVELOPER , VENDOR ,
RUNTIME , PLATFORM หรือ SYSTEM |
error.frames.blamed |
BOOLEAN | ไม่ว่าCrashlyticsจะพิจารณาว่าเฟรมนี้เป็นสาเหตุของ ข้อผิดพลาดหรือไม่ |
threads |
บันทึกซ้ำ | ชุดข้อความที่แสดงในขณะที่เกิดเหตุการณ์ |
threads.crashed |
BOOLEAN | ชุดข้อความขัดข้องหรือไม่ |
threads.thread_name |
STRING | ชื่อของเธรด |
threads.queue_name |
STRING | (แอปของ Apple เท่านั้น) คิวที่เธรดทำงานอยู่ |
threads.signal_name |
STRING | ชื่อของสัญญาณที่ทำให้แอปขัดข้อง ซึ่งจะแสดงเฉพาะในเธรดเนทีฟที่ขัดข้องเท่านั้น |
threads.signal_code |
STRING | โค้ดของสัญญาณที่ทำให้แอปขัดข้อง โดยจะแสดงเฉพาะในเธรดดั้งเดิมที่ขัดข้อง |
threads.crash_address |
INT64 | ที่อยู่ของสัญญาณที่ทำให้แอปพลิเคชันขัดข้อง จะแสดงเฉพาะในเธรดเนทีฟที่ขัดข้องเท่านั้น |
threads.code |
INT64 | (แอปของ Apple เท่านั้น) รหัสข้อผิดพลาดของ NSError ที่บันทึกที่กำหนดเองของแอปพลิเคชัน |
threads.title |
STRING | ชื่อของชุดข้อความ |
threads.subtitle |
STRING | คำบรรยายของเธรด |
threads.blamed |
BOOLEAN | ไม่ว่า Crashlytics จะพิจารณาว่าเฟรมนี้เป็นสาเหตุของการขัดข้อง หรือข้อผิดพลาดหรือไม่ |
threads.frames |
บันทึกซ้ำ | เฟรมของเธรด |
threads.frames.line |
INT64 | หมายเลขบรรทัดของไฟล์ของเฟรม |
threads.frames.file |
STRING | ชื่อของไฟล์เฟรม |
threads.frames.symbol |
STRING | สัญลักษณ์ที่ไฮเดรตแล้ว หรือสัญลักษณ์ดิบหากไฮเดรตไม่ได้ |
threads.frames.offset |
INT64 | ออฟเซ็ตไบต์ในรูปภาพไบนารีที่มีโค้ด |
threads.frames.address |
INT64 | ที่อยู่ในรูปภาพไบนารีที่มีโค้ด |
threads.frames.library |
STRING | ชื่อที่แสดงของไลบรารีที่มีเฟรม |
threads.frames.owner |
STRING | เช่น DEVELOPER , VENDOR ,
RUNTIME , PLATFORM หรือ SYSTEM |
threads.frames.blamed |
BOOLEAN | ไม่ว่าCrashlyticsจะพิจารณาว่าเฟรมนี้เป็นสาเหตุของ ข้อผิดพลาดหรือไม่ |
unity_metadata.unity_version |
STRING | เวอร์ชันของ Unity ที่ทำงานในอุปกรณ์นี้ |
unity_metadata.debug_build |
BOOLEAN | หากเป็นบิลด์การแก้ไขข้อบกพร่อง |
unity_metadata.processor_type |
STRING | ประเภทโปรเซสเซอร์ |
unity_metadata.processor_count |
INT64 | จำนวนโปรเซสเซอร์ (คอร์) |
unity_metadata.processor_frequency_mhz |
INT64 | ความถี่ของโปรเซสเซอร์ในหน่วย MHz |
unity_metadata.system_memory_size_mb |
INT64 | ขนาดหน่วยความจำของระบบในหน่วย Mb |
unity_metadata.graphics_memory_size_mb |
INT64 | หน่วยความจำกราฟิกในหน่วย MB |
unity_metadata.graphics_device_id |
INT64 | ตัวระบุของอุปกรณ์กราฟิก |
unity_metadata.graphics_device_vendor_id |
INT64 | ตัวระบุของผู้ให้บริการโปรเซสเซอร์กราฟิก |
unity_metadata.graphics_device_name |
STRING | ชื่อของอุปกรณ์กราฟิก |
unity_metadata.graphics_device_vendor |
STRING | ผู้จำหน่ายอุปกรณ์กราฟิก |
unity_metadata.graphics_device_version |
STRING | เวอร์ชันของอุปกรณ์กราฟิก |
unity_metadata.graphics_device_type |
STRING | ประเภทของอุปกรณ์กราฟิก |
unity_metadata.graphics_shader_level |
INT64 | ระดับ Shader ของกราฟิก |
unity_metadata.graphics_render_target_count |
INT64 | จำนวนเป้าหมายการแสดงผลกราฟิก |
unity_metadata.graphics_copy_texture_support |
STRING | รองรับการคัดลอกพื้นผิวกราฟิกตามที่กำหนดไว้ใน Unity API |
unity_metadata.graphics_max_texture_size |
INT64 | ขนาดสูงสุดที่ใช้ในการแสดงผลพื้นผิว |
unity_metadata.screen_size_px |
STRING | ขนาดหน้าจอเป็นพิกเซลในรูปแบบกว้าง x สูง |
unity_metadata.screen_resolution_dpi |
STRING | DPI ของหน้าจอเป็นเลขทศนิยม |
unity_metadata.screen_refresh_rate_hz |
INT64 | อัตราการรีเฟรชของหน้าจอในหน่วย Hz |
แสดงข้อมูล Crashlytics ที่ส่งออกเป็นภาพด้วย Data Studio
Google Data Studio จะเปลี่ยน Crashlytics ชุดข้อมูลใน BigQuery ให้เป็นรายงานที่อ่านง่ายขึ้น แชร์ได้สะดวกขึ้น และปรับแต่งได้อย่างเต็มที่
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ Data Studio ได้ที่คู่มือเริ่มต้นใช้งาน Data Studio อย่างรวดเร็ว ยินดีต้อนรับสู่ Data Studio
ใช้เทมเพลตรายงาน Crashlytics
Data Studio มีรายงานตัวอย่างสําหรับ Crashlytics ซึ่งมีชุดมิติข้อมูลและเมตริกที่ครอบคลุมจากสคีมา Crashlytics BigQuery ที่ส่งออก หากเปิดใช้Crashlyticsการส่งออกแบบสตรีม ไปยัง BigQuery คุณจะดูข้อมูลดังกล่าวได้ในหน้าเทรนด์แบบเรียลไทม์ ของเทมเพลต Data Studio คุณสามารถใช้ตัวอย่างเป็นเทมเพลตเพื่อสร้างรายงานและการแสดงภาพใหม่ๆ ได้อย่างรวดเร็ว โดยอิงตามข้อมูลข้อขัดข้องดิบของแอปคุณเอง
คลิกใช้เทมเพลตที่มุมขวาบน
ในเมนูแบบเลื่อนลงแหล่งข้อมูลใหม่ ให้เลือกสร้างแหล่งข้อมูลใหม่
คลิกเลือกในการ์ด BigQuery
เลือกตารางที่มีข้อมูล Crashlytics ที่ส่งออกโดยเลือกโปรเจ็กต์ของฉัน > PROJECT_ID > firebase_crashlytics > TABLE_NAME
คุณเลือกตารางกลุ่มได้เสมอ หากเปิดใช้ Crashlyticsการส่งออกแบบสตรีมไปยัง BigQuery คุณจะเลือกตารางแบบเรียลไทม์แทนได้
ในส่วนการกำหนดค่า ให้ตั้งค่าCrashlytics ระดับเทมเพลตเป็น ค่าเริ่มต้น
คลิกเชื่อมต่อเพื่อสร้างแหล่งข้อมูลใหม่
คลิกเพิ่มลงในรายงานเพื่อกลับไปที่เทมเพลต Crashlytics
สุดท้าย ให้คลิกสร้างรายงานเพื่อสร้างสำเนาCrashlytics เทมเพลตแดชบอร์ด Data Studio
อัปเกรดเป็นโครงสร้างพื้นฐานการส่งออกใหม่
ในช่วงกลางเดือนตุลาคม 2024 Crashlytics ได้เปิดตัวโครงสร้างพื้นฐานใหม่สำหรับการส่งออกเป็นกลุ่ม ของข้อมูล Crashlytics ไปยัง BigQuery
โปรเจ็กต์ Firebase ทั้งหมดจะได้รับการอัปเกรดเป็นโครงสร้างพื้นฐานการส่งออกแบบกลุ่มใหม่โดยอัตโนมัติภายในวันที่ 15 กันยายน 2025 คุณอัปเกรดก่อนวันที่นี้ได้ แต่โปรดตรวจสอบว่าตารางกลุ่ม BigQuery เป็นไปตามข้อกำหนดเบื้องต้นสำหรับการอัปเกรด
คุณอัปเกรดเป็นโครงสร้างพื้นฐานใหม่ได้ แต่โปรดตรวจสอบว่าตารางกลุ่ม BigQuery เป็นไปตามข้อกำหนดเบื้องต้นสำหรับการอัปเกรด
ตรวจสอบว่าคุณใช้โครงสร้างพื้นฐานใหม่หรือไม่
หากคุณเปิดใช้การส่งออกเป็นกลุ่มในช่วงกลางเดือนตุลาคม 2024 หรือหลังจากนั้น โปรเจ็กต์ Firebase จะใช้โครงสร้างพื้นฐานการส่งออกใหม่โดยอัตโนมัติ
คุณสามารถตรวจสอบโครงสร้างพื้นฐานที่โปรเจ็กต์ใช้ได้โดยทำดังนี้
ไปที่Google Cloud คอนโซล และหาก"การกำหนดค่าการโอนข้อมูล"
มีป้ายกำกับเป็น Firebase Crashlytics with Multi-Region Support
แสดงว่าโปรเจ็กต์ใช้โครงสร้างพื้นฐานการส่งออกใหม่
ความแตกต่างที่สำคัญระหว่างโครงสร้างพื้นฐานการส่งออกแบบเก่ากับโครงสร้างพื้นฐานการส่งออกแบบใหม่
โครงสร้างพื้นฐานใหม่รองรับCrashlyticsตำแหน่งชุดข้อมูลนอก สหรัฐอเมริกา
เปิดใช้การส่งออกก่อนช่วงกลางเดือนตุลาคม 2024 และอัปเกรดเป็นโครงสร้างพื้นฐานการส่งออกใหม่ - ตอนนี้คุณสามารถเปลี่ยนตำแหน่งสำหรับการส่งออกข้อมูลได้แล้ว (ไม่บังคับ)
เปิดใช้การส่งออกในช่วงกลางเดือนตุลาคม 2024 หรือหลังจากนั้น - ระบบแจ้งให้คุณเลือกตำแหน่งสำหรับการส่งออกข้อมูลในระหว่างการตั้งค่า
โครงสร้างพื้นฐานใหม่ไม่รองรับการเติมข้อมูลย้อนหลังก่อนที่คุณเปิดใช้การส่งออก
โครงสร้างพื้นฐานเดิมรองรับการเติมเต็มย้อนหลังได้สูงสุด 30 วันก่อนวันที่คุณเปิดใช้การส่งออก
โครงสร้างพื้นฐานใหม่รองรับการเติมเต็ม ย้อนหลังได้สูงสุด 30 วัน หรือวันที่ล่าสุดเมื่อคุณเปิดใช้การส่งออก ไปยัง BigQuery (แล้วแต่ว่าวันที่ใดล่าสุด)
ชื่อโครงสร้างพื้นฐานใหม่BigQueryใช้ตารางกลุ่มโดยใช้ ตัวระบุที่ตั้งค่าไว้สำหรับแอป Firebase ในโปรเจ็กต์ Firebase
โครงสร้างพื้นฐานเดิมจะเขียนข้อมูลลงในตารางกลุ่มที่มีชื่อตาม รหัสแพ็กเกจหรือชื่อแพ็กเกจ ในการกำหนดค่า Firebase ในโค้ดเบสของแอป
โครงสร้างพื้นฐานใหม่จะเขียนข้อมูลลงในตารางกลุ่มที่มีชื่อตาม รหัสแพ็กเกจหรือชื่อแพ็กเกจ ที่ตั้งค่าไว้สำหรับแอป Firebase ที่ลงทะเบียนในโปรเจ็กต์ Firebase
ขั้นตอนที่ 1: ข้อกำหนดเบื้องต้นสำหรับการอัปเกรด
ตรวจสอบว่าตารางกลุ่ม BigQuery ที่มีอยู่ใช้ ตัวระบุที่ตรงกันกับรหัส Bundle หรือชื่อแพ็กเกจ ที่ตั้งค่าไว้สำหรับแอป Firebase ที่ลงทะเบียนในโปรเจ็กต์ Firebase หากไม่ตรงกัน คุณอาจพบปัญหาเกี่ยวกับข้อมูลกลุ่มที่ส่งออก โปรเจ็กต์ส่วนใหญ่จะอยู่ในสถานะที่เหมาะสมและเข้ากันได้ แต่คุณควรตรวจสอบก่อนอัปเกรด
คุณดูแอป Firebase ทั้งหมดที่ลงทะเบียนในโปรเจ็กต์ Firebase ได้ใน Firebase คอนโซล: ไปที่ การตั้งค่าโปรเจ็กต์ จากนั้นเลื่อนไปที่การ์ดแอปของคุณเพื่อดูแอป Firebase ทั้งหมดและ ข้อมูลของแอป
คุณดูตารางกลุ่ม BigQuery ทั้งหมดได้ใน BigQuery หน้า ของคอนโซล Google Cloud
ตัวอย่างเช่น สถานะที่เหมาะสมซึ่งคุณจะไม่มีปัญหาในการอัปเกรดมีดังนี้
คุณมีตารางกลุ่มชื่อ
com_yourcompany_yourproject_IOS
และแอป Firebase iOS+ ที่มี Bundle IDcom.yourcompany.yourproject
ซึ่งลงทะเบียนในโปรเจ็กต์ Firebaseคุณมีตารางกลุ่มชื่อ
com_yourcompany_yourproject_ANDROID
และ แอป Firebase บน Android ที่มีชื่อแพ็กเกจcom.yourcompany.yourproject
ซึ่งลงทะเบียนในโปรเจ็กต์ Firebase
หากคุณมีชื่อตารางกลุ่มที่ไม่ตรงกับ ตัวระบุที่ตั้งค่าไว้สำหรับแอป Firebase ที่ลงทะเบียน ให้ทำตามวิธีการ ในหน้านี้ในภายหลังก่อนที่จะอัปเกรดด้วยตนเองหรือ ก่อนวันที่ 15 กันยายน 2025 เพื่อไม่ให้การส่งออกกลุ่มหยุดชะงัก
ขั้นตอนที่ 2: อัปเกรดเป็นโครงสร้างพื้นฐานใหม่ด้วยตนเอง
หากเปิดใช้การส่งออกเป็นกลุ่มก่อนช่วงกลางเดือนตุลาคม 2024 คุณจะอัปเกรดเป็นโครงสร้างพื้นฐานใหม่ได้ด้วยตนเอง เพียงแค่สลับCrashlyticsการส่งออกข้อมูล จากปิดเป็นเปิดอีกครั้งในคอนโซล Firebase
ขั้นตอนโดยละเอียดมีดังนี้
ในFirebaseคอนโซล ให้ไปที่ หน้าการผสานรวม
คลิกจัดการในการ์ด BigQuery
สลับแถบเลื่อน Crashlytics เป็นปิดเพื่อปิดใช้การส่งออก เมื่อได้รับข้อความแจ้ง ให้ยืนยันว่าคุณต้องการหยุดการส่งออกข้อมูล
สลับCrashlyticsแถบเลื่อนเป็นเปิดอีกครั้งทันทีเพื่อเปิดใช้การส่งออกอีกครั้ง เมื่อได้รับข้อความแจ้ง ให้ยืนยันว่าต้องการส่งออกข้อมูล
ตอนนี้การส่งออกข้อมูล Crashlytics ไปยัง BigQuery ใช้โครงสร้างพื้นฐานการส่งออกใหม่แล้ว