คุณสามารถส่งออกข้อมูล Firebase Crashlytics ไปยัง BigQuery เพื่อ วิเคราะห์เพิ่มเติมได้ BigQuery ช่วยให้คุณวิเคราะห์ข้อมูลโดยใช้ BigQuery SQL ส่งออกไปยังผู้ให้บริการคลาวด์รายอื่น และใช้เพื่อ การแสดงภาพและแดชบอร์ดที่กำหนดเองด้วย Looker Studio
คุณทำอะไรกับข้อมูลที่ส่งออกได้บ้าง
การส่งออกไปยัง BigQuery มีข้อมูลข้อขัดข้องดิบ ซึ่งรวมถึงประเภทอุปกรณ์ ระบบปฏิบัติการ ข้อยกเว้น (แอป Android) หรือข้อผิดพลาด (แอป Apple) และ Crashlytics บันทึก รวมถึงข้อมูลอื่นๆ คุณสามารถตรวจสอบได้ว่า Crashlytics ข้อมูลใดบ้างที่ส่งออกและ สคีมาตารางของข้อมูลนั้นคืออะไรในส่วนท้ายของหน้านี้
ตัวอย่างสิ่งที่คุณทำได้ด้วยข้อมูล Crashlytics ที่ส่งออกมีดังนี้
เรียกใช้การค้นหา
คุณสามารถเรียกใช้การค้นหาในข้อมูล Crashlytics เพื่อสร้างรายงานที่ รวบรวมข้อมูลเหตุการณ์ข้อขัดข้องเป็นข้อมูลสรุปที่เข้าใจได้ง่ายขึ้น เนื่องจากรายงานประเภทเหล่านี้ไม่มีในแดชบอร์ดของคอนโซล CrashlyticsFirebase จึงสามารถช่วยเสริมการวิเคราะห์และความเข้าใจเกี่ยวกับข้อมูลข้อขัดข้อง ดูตัวอย่างคำค้นหาที่คัดสรรมาแล้วได้ที่ส่วนท้ายของหน้านี้ใช้Looker Studioเทมเพลต
Crashlyticsมี เทมเพลตLooker Studioที่สร้างไว้ล่วงหน้า สำหรับการแสดงข้อมูลที่ส่งออกเป็นภาพสร้างมุมมอง
คุณสามารถสร้าง "มุมมอง" ซึ่งเป็นตารางเสมือนจริงที่กำหนดโดยการค้นหา SQL ได้โดยใช้ UI ของ BigQuery ดูวิธีการโดยละเอียดเกี่ยวกับข้อมูลพร็อพเพอร์ตี้ประเภทต่างๆ และวิธีสร้างได้ในBigQueryเอกสารประกอบ
Crashlytics การส่งออกแบบสตรีมไปยัง BigQuery
คุณสามารถสตรีมข้อมูล Crashlytics แบบเรียลไทม์ด้วยBigQuery สตรีมมิง คุณสามารถใช้สำหรับวัตถุประสงค์ใดก็ตามที่ต้องใช้ข้อมูลแบบเรียลไทม์ เช่น การนำเสนอข้อมูลในแดชบอร์ดแบบเรียลไทม์ การดูการเปิดตัวแบบเรียลไทม์ หรือการตรวจสอบปัญหาของแอปพลิเคชันที่ทริกเกอร์การแจ้งเตือนและเวิร์กโฟลว์ที่กำหนดเอง
เมื่อเปิดใช้Crashlyticsการส่งออกแบบสตรีมไปยัง BigQuery นอกเหนือจากตารางแบบกลุ่มแล้ว คุณจะมีตารางแบบเรียลไทม์ด้วย ความแตกต่างระหว่างตารางที่คุณควรทราบมีดังนี้
ตารางกลุ่ม | ตารางแบบเรียลไทม์ |
---|---|
|
|
ตารางกลุ่มเหมาะสําหรับการวิเคราะห์ระยะยาวและการระบุแนวโน้มเมื่อเวลาผ่านไป เนื่องจากเราจัดเก็บเหตุการณ์อย่างถาวรก่อนที่จะเขียน และสามารถป้อนข้อมูลย้อนหลัง ลงในตารางได้นานสูงสุด 30 วัน* เมื่อเขียนข้อมูลลงในตารางแบบเรียลไทม์ เราจะเขียนข้อมูลลงใน BigQuery ทันที จึงเหมาะสําหรับแดชบอร์ดแบบเรียลไทม์และการแจ้งเตือนที่กําหนดเอง ตารางทั้ง 2 ตารางนี้สามารถ รวมกับการค้นหาการเย็บเพื่อรับ ประโยชน์จากทั้ง 2 ตาราง
โดยค่าเริ่มต้น ตารางแบบเรียลไทม์จะมีเวลาหมดอายุของพาร์ติชันเป็น 30 วัน หากต้องการ ดูวิธีแก้ไขค่านี้ โปรดดูตั้งค่าการหมดอายุของพาร์ติชัน ในเอกสารประกอบของ BigQuery
* ดูรายละเอียดเกี่ยวกับการรองรับการแสดงโฆษณาสำรองได้ใน อัปเกรดเป็นโครงสร้างพื้นฐานการส่งออกใหม่
เปิดใช้การส่งออกไปยัง BigQuery
ในFirebaseคอนโซล ให้ไปที่ หน้าการผสานรวม
คลิกลิงก์ในการ์ด BigQuery
ทำตามวิธีการบนหน้าจอเพื่อเปิดใช้การส่งออกไปยัง BigQuery
หากต้องการเข้าถึงข้อมูล Crashlytics แบบเกือบเรียลไทม์ใน BigQuery โปรดพิจารณาอัปเกรดเป็นการส่งออกแบบสตรีม
เปิดใช้Crashlyticsการส่งออกสตรีมไปยัง BigQuery
ในFirebaseคอนโซล ให้ไปที่ หน้าการผสานรวม
คลิกจัดการในการ์ด BigQuery
เลือกช่องทำเครื่องหมายรวมการสตรีม
การดำเนินการนี้จะเปิดใช้การสตรีมสำหรับแอปที่ลิงก์ทั้งหมด
สิ่งที่จะเกิดขึ้นเมื่อคุณเปิดใช้การส่งออก
คุณเลือกตำแหน่งชุดข้อมูล หลังจากสร้างชุดข้อมูลแล้ว คุณจะเปลี่ยนแปลงตำแหน่งไม่ได้ แต่จะคัดลอกชุดข้อมูลไปยังตำแหน่งอื่นหรือย้าย (สร้างใหม่) ชุดข้อมูลไปยังตำแหน่งอื่นด้วยตนเองได้ ดูข้อมูลเพิ่มเติมได้ที่เปลี่ยนตำแหน่งสำหรับการส่งออกที่มีอยู่
ตำแหน่งนี้ใช้ได้กับข้อมูลที่ส่งออกไปยัง BigQuery เท่านั้น และจะไม่ส่งผลต่อตำแหน่งของข้อมูลที่จัดเก็บไว้เพื่อใช้ในแดชบอร์ด Crashlytics ของคอนโซล Firebase หรือใน Android Studio
แอปทั้งหมดในโปรเจ็กต์ลิงก์อยู่กับ BigQuery โดยค่าเริ่มต้น และแอปที่เพิ่มในโปรเจ็กต์ภายหลังจะลิงก์กับ BigQuery โดยอัตโนมัติด้วยเช่นกัน คุณสามารถ จัดการแอปที่ส่งข้อมูลได้
Firebase จะตั้งค่าการซิงค์ข้อมูลกับ BigQuery ทุกวัน
หลังจากลิงก์โปรเจ็กต์แล้ว โดยปกติคุณจะต้องรอจนถึงการซิงค์ในวันถัดไปเพื่อให้ระบบส่งออกชุดข้อมูลแรกไปยัง BigQuery
การซิงค์รายวันจะเกิดขึ้นวันละครั้ง ไม่ว่าคุณจะตั้งค่าการส่งออกที่กำหนดเวลาไว้ใน BigQuery หรือไม่ก็ตาม โปรดทราบว่าเวลาและ ระยะเวลาของงานซิงค์อาจเปลี่ยนแปลงได้ ดังนั้นเราจึงไม่แนะนำให้กำหนดเวลา การดำเนินการหรือการทำงานขั้นปลายตามเวลาที่เฉพาะเจาะจงของการส่งออก
Firebase ส่งออกสำเนาข้อมูลที่มีอยู่ ไปยัง BigQuery การเผยแพร่ข้อมูลเริ่มต้นสำหรับการส่งออกอาจใช้เวลาถึง 48 ชั่วโมง
สําหรับแอปที่ลิงก์แต่ละแอป การส่งออกนี้จะมีตารางกลุ่มที่มีข้อมูล จากการซิงค์รายวัน
คุณสามารถกำหนดเวลาการป้อนข้อมูลย้อนหลังด้วยตนเอง สำหรับตารางกลุ่มได้สูงสุด 30 วันที่ผ่านมา หรือสำหรับวันที่ล่าสุด เมื่อเปิดใช้การส่งออกไปยัง BigQuery (แล้วแต่ว่าวันที่ใดล่าสุด)
โปรดทราบว่าหากเปิดใช้การส่งออกข้อมูล Crashlytics ก่อน กลางเดือนตุลาคม 2024 คุณจะกรอกข้อมูลย้อนหลังได้ 30 วันก่อนวันที่เปิดใช้ การส่งออกด้วย
หากคุณเปิดใช้Crashlyticsการส่งออกแบบสตรีมไปยัง BigQuery แอปที่ลิงก์ทั้งหมดจะมีตารางเรียลไทม์ที่มีข้อมูลที่อัปเดตอยู่ตลอดเวลาด้วย
หากต้องการปิดใช้งานการส่งออกไปยัง BigQuery ยกเลิกการลิงก์โปรเจ็กต์ ในคอนโซล Firebase
ตัวอย่างคำค้นหา
ตัวอย่างที่ 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 >= PARSE_TIMESTAMP("%Y_%m_%d", "YYYY_MM_DD") GROUP BY issue_id ORDER BY events DESC LIMIT 5;
แสดงภาพข้อมูล Crashlytics ที่ส่งออกด้วย Looker Studio
Looker Studio เปลี่ยนCrashlyticsชุดข้อมูลใน BigQuery เป็นรายงานที่ อ่านง่ายขึ้น แชร์ง่ายขึ้น และปรับแต่งได้อย่างเต็มที่
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ Looker Studio ได้ที่คู่มือต้อนรับ
ใช้เทมเพลตรายงาน Crashlytics
Looker Studio มีรายงานตัวอย่างสําหรับ Crashlytics ซึ่งมี ชุดมิติข้อมูลและเมตริกที่ครอบคลุมจากสคีมา Crashlytics BigQuery ที่ส่งออก หากเปิดใช้Crashlyticsการส่งออกสตรีมมิง ไปยัง BigQuery คุณจะดูข้อมูลดังกล่าวได้ในหน้าเทรนด์แบบเรียลไทม์ ของเทมเพลต Looker Studio คุณสามารถใช้ตัวอย่างเป็นเทมเพลต เพื่อสร้างรายงานและการแสดงภาพใหม่ๆ ได้อย่างรวดเร็วโดยอิงตามข้อมูลข้อขัดข้อง ดิบของแอปคุณเอง
คลิกใช้เทมเพลตที่มุมขวาบน
ในเมนูแบบเลื่อนลงแหล่งข้อมูลใหม่ ให้เลือกสร้างแหล่งข้อมูลใหม่
คลิกเลือกในการ์ด BigQuery
เลือกตารางที่มีข้อมูล Crashlytics ที่ส่งออกโดยเลือกโปรเจ็กต์ของฉัน > PROJECT_ID > firebase_crashlytics > TABLE_NAME
คุณเลือกตารางกลุ่มได้เสมอ หากเปิดใช้ Crashlyticsการส่งออกแบบสตรีมไปยัง BigQuery คุณจะเลือกตารางแบบเรียลไทม์แทนได้
ในส่วนการกำหนดค่า ให้ตั้งค่าCrashlytics ระดับเทมเพลตเป็น ค่าเริ่มต้น
คลิกเชื่อมต่อเพื่อสร้างแหล่งข้อมูลใหม่
คลิกเพิ่มลงในรายงานเพื่อกลับไปที่เทมเพลต Crashlytics
สุดท้าย ให้คลิกสร้างรายงานเพื่อสร้างสำเนาของเทมเพลตแดชบอร์ด Crashlytics Looker Studio
ทำความเข้าใจCrashlyticsสคีมาในBigQuery
ระบบจะส่งออกข้อมูล Firebase Crashlytics ไปยังชุดข้อมูล BigQuery ชื่อ
firebase_crashlytics
ชุดข้อมูลครอบคลุมทั้งโปรเจ็กต์ แม้ว่าจะมีแอปหลายแอปก็ตาม
ตาราง
โดยค่าเริ่มต้น Firebase จะสร้างตารางแต่ละรายการภายในCrashlytics
ชุดข้อมูลสําหรับแต่ละแอปในโปรเจ็กต์ที่ลิงก์กับ BigQuery
ตารางจะตั้งชื่อตามตัวระบุของแอป (โดยแปลงจุดเป็น
ขีดล่าง) และต่อท้ายด้วยแพลตฟอร์มของแอป (_IOS
หรือ _ANDROID
) เช่น ข้อมูลสำหรับแอป Android ที่มีชื่อแพ็กเกจ com.google.test
จะอยู่ในตารางชื่อ com_google_test_ANDROID
หากเปิดใช้Crashlyticsการส่งออกแบบสตรีมไปยัง BigQuery ระบบจะสตรีมข้อมูลCrashlyticsแบบเรียลไทม์ไปยังตารางที่ต่อท้ายด้วย
_REALTIME
ด้วย (เช่น com_google_test_ANDROID_REALTIME
)
แต่ละแถวในตารางแสดงถึงเหตุการณ์ที่เกิดขึ้นในแอป ซึ่งรวมถึง การขัดข้อง ข้อผิดพลาดที่ไม่ร้ายแรง และ ANR
ตารางมีชุดCrashlyticsข้อมูลมาตรฐานนอกเหนือจากคีย์Crashlyticsที่กำหนดเอง ที่คุณกำหนดไว้ในแอป
แถว
แต่ละแถวในตารางแสดงข้อผิดพลาดที่แอปพบ
คอลัมน์
คอลัมน์ในตารางจะเหมือนกันสำหรับข้อขัดข้อง ข้อผิดพลาดที่ไม่ร้ายแรง และ ANR หากเปิดใช้ Crashlyticsการส่งออกแบบสตรีมไปยัง BigQuery ตาราง เรียลไทม์จะมีคอลัมน์เหมือนกับตารางแบบกลุ่ม โปรดทราบว่าคุณอาจ มีคอลัมน์ในแถวที่แสดงเหตุการณ์ที่ไม่มี Stack Trace
ต่อไปนี้คือคอลัมน์ในตารางสำหรับข้อมูล Crashlytics ที่ส่งออก
ชื่อช่อง | ประเภทข้อมูล | คำอธิบาย |
---|---|---|
app_orientation |
STRING | เช่น PORTRAIT , LANDSCAPE ,
FACE_UP , FACE_DOWN เป็นต้น |
application |
RECORD | แอปที่สร้างเหตุการณ์ |
application.build_version |
STRING | เวอร์ชันบิลด์ของแอป |
application.display_version |
STRING | |
blame_frame |
RECORD | เฟรมที่ระบุว่าเป็นสาเหตุหลักของข้อขัดข้องหรือข้อผิดพลาด |
blame_frame.address |
INT64 | ที่อยู่ในรูปภาพไบนารีที่มีโค้ด ไม่ได้ตั้งค่าสำหรับเฟรม Java |
blame_frame.blamed |
BOOLEAN | ไม่ว่า Crashlytics จะพิจารณาว่าเฟรมนี้เป็นสาเหตุของการขัดข้อง หรือข้อผิดพลาดหรือไม่ |
blame_frame.file |
STRING | ชื่อของไฟล์เฟรม |
blame_frame.library |
STRING | ชื่อที่แสดงของไลบรารีที่มีเฟรม |
blame_frame.line |
INT64 | หมายเลขบรรทัดของไฟล์ของเฟรม |
blame_frame.offset |
INT64 | ออฟเซ็ตไบต์ในรูปภาพไบนารีที่มีโค้ด ไม่ได้ตั้งค่าสำหรับข้อยกเว้นของ Java |
blame_frame.owner |
STRING | เช่น DEVELOPER , VENDOR ,
RUNTIME , PLATFORM หรือ SYSTEM |
blame_frame.symbol |
STRING | สัญลักษณ์ที่ไฮเดรตแล้ว หรือสัญลักษณ์ดิบหากไฮเดรตไม่ได้ |
breadcrumbs |
บันทึกซ้ำ | Google Analyticsเบรดครัมบ์ที่มีการประทับเวลา หากเปิดใช้ |
breadcrumbs.name |
STRING | ชื่อที่เชื่อมโยงกับ Breadcrumb |
breadcrumbs.params |
บันทึกซ้ำ | พารามิเตอร์ที่เชื่อมโยงกับ Breadcrumb |
breadcrumbs.params.key |
STRING | คีย์พารามิเตอร์ที่เชื่อมโยงกับ Breadcrumb |
breadcrumbs.params.value |
STRING | ค่าพารามิเตอร์ที่เชื่อมโยงกับ Breadcrumb |
breadcrumbs.timestamp |
การประทับเวลา | การประทับเวลาที่เชื่อมโยงกับ Breadcrumb |
bundle_identifier |
STRING | ตัวระบุที่ไม่ซ้ำกันสำหรับแอปตามที่ลงทะเบียนไว้ในโปรเจ็กต์ Firebase
(เช่น com.google.gmail สำหรับแอปแพลตฟอร์ม Apple นี่คือรหัสแพ็กเกจของแอป สำหรับแอป Android นี่คือชื่อแพ็กเกจของแอป |
crashlytics_sdk_versions |
STRING | Crashlytics เวอร์ชัน SDK ที่สร้างเหตุการณ์ |
custom_keys |
บันทึกซ้ำ | คู่คีย์-ค่าที่นักพัฒนาแอปกำหนด |
custom_keys.key |
STRING | คีย์ที่นักพัฒนาแอปกำหนด |
custom_keys.value |
STRING | ค่าที่นักพัฒนาแอปกำหนด |
device |
RECORD | อุปกรณ์ที่เกิดเหตุการณ์ |
device_orientation |
STRING | เช่น PORTRAIT , LANDSCAPE ,
FACE_UP , FACE_DOWN เป็นต้น |
device.architecture |
STRING | เช่น X86_32 , X86_64 , ARMV7 ,
ARM64 , ARMV7S หรือ ARMV7K |
device.manufacturer |
STRING | ผู้ผลิตอุปกรณ์ |
device.model |
STRING | รุ่นอุปกรณ์ |
error |
บันทึกซ้ำ | ข้อผิดพลาดที่ไม่ร้ายแรง(แอปของ Apple เท่านั้น) |
error_type |
STRING | ประเภทข้อผิดพลาดของเหตุการณ์ (เช่น FATAL ,
NON_FATAL , ANR ฯลฯ) |
error.blamed |
BOOLEAN | ไม่ว่าCrashlyticsจะพิจารณาว่าเฟรมนี้เป็นสาเหตุของ ข้อผิดพลาดหรือไม่ |
error.code |
INT64 | รหัสข้อผิดพลาดที่เชื่อมโยงกับ NSError ที่บันทึกไว้ที่กำหนดเองของแอป |
error.frames |
บันทึกซ้ำ | เฟรมของ Stacktrace |
error.frames.address |
INT64 | ที่อยู่ในรูปภาพไบนารีที่มีโค้ด |
error.frames.blamed |
BOOLEAN | ไม่ว่าCrashlyticsจะพิจารณาว่าเฟรมนี้เป็นสาเหตุของ ข้อผิดพลาดหรือไม่ |
error.frames.file |
STRING | ชื่อของไฟล์เฟรม |
error.frames.library |
STRING | ชื่อที่แสดงของไลบรารีที่มีเฟรม |
error.frames.line |
INT64 | หมายเลขบรรทัดของไฟล์ของเฟรม |
error.frames.offset |
INT64 | ออฟเซ็ตไบต์ในรูปภาพไบนารีที่มีโค้ด |
error.frames.owner |
STRING | เช่น DEVELOPER , VENDOR ,
RUNTIME , PLATFORM หรือ SYSTEM |
error.frames.symbol |
STRING | สัญลักษณ์ที่ไฮเดรตแล้ว หรือสัญลักษณ์ดิบหากไฮเดรตไม่ได้ |
error.queue_name |
STRING | คิวที่ชุดข้อความทำงานอยู่ |
error.subtitle |
STRING | คำบรรยายของเธรด |
error.title |
STRING | ชื่อของชุดข้อความ |
event_id |
STRING | รหัสที่ไม่ซ้ำกันสำหรับเหตุการณ์ |
event_timestamp |
การประทับเวลา | เมื่อเกิดเหตุการณ์ |
exceptions |
บันทึกซ้ำ | (Android เท่านั้น) ข้อยกเว้นที่เกิดขึ้นระหว่างเหตุการณ์นี้ ระบบจะแสดงข้อยกเว้นที่ซ้อนกันตามลำดับเวลาแบบย้อนกลับ ซึ่งหมายความว่า บันทึกล่าสุดคือข้อยกเว้นแรกที่เกิดขึ้น |
exceptions.blamed |
BOOLEAN | เป็นจริงหาก Crashlytics ระบุว่าข้อยกเว้นเป็นสาเหตุของ ข้อผิดพลาดหรือข้อขัดข้อง |
exceptions.exception_message |
STRING | ข้อความที่เชื่อมโยงกับข้อยกเว้น |
exceptions.frames |
บันทึกซ้ำ | เฟรมที่เชื่อมโยงกับข้อยกเว้น |
exceptions.frames.address |
INT64 | ที่อยู่ในรูปภาพไบนารีที่มีโค้ด ไม่ได้ตั้งค่าสำหรับเฟรม Java |
exceptions.frames.blamed |
BOOLEAN | ไม่ว่า Crashlytics จะพิจารณาว่าเฟรมนี้เป็นสาเหตุของการขัดข้อง หรือข้อผิดพลาดหรือไม่ |
exceptions.frames.file |
STRING | ชื่อของไฟล์เฟรม |
exceptions.frames.library |
STRING | ชื่อที่แสดงของไลบรารีที่มีเฟรม |
exceptions.frames.line |
INT64 | หมายเลขบรรทัดของไฟล์ของเฟรม |
exceptions.frames.offset |
INT64 | ออฟเซ็ตไบต์ในรูปภาพไบนารีที่มีโค้ด ไม่ได้ตั้งค่าสำหรับข้อยกเว้นของ Java |
exceptions.frames.owner |
STRING | เช่น DEVELOPER , VENDOR ,
RUNTIME , PLATFORM หรือ SYSTEM |
exceptions.frames.symbol |
STRING | สัญลักษณ์ที่ไฮเดรตแล้ว หรือสัญลักษณ์ดิบหากไฮเดรตไม่ได้ |
exceptions.nested |
BOOLEAN | เป็นจริงสำหรับข้อยกเว้นทั้งหมด ยกเว้นข้อยกเว้นที่ส่งล่าสุด (หมายถึงระเบียนแรก) |
exceptions.subtitle |
STRING | คำบรรยายของเธรด |
exceptions.title |
STRING | ชื่อของชุดข้อความ |
exceptions.type |
STRING | ประเภทข้อยกเว้น
(เช่น java.lang.IllegalStateException) |
installation_uuid |
STRING | รหัสที่ระบุการติดตั้งแอปและอุปกรณ์ที่ไม่ซ้ำกัน |
is_fatal |
BOOLEAN | แอปขัดข้องหรือไม่ |
issue_id |
STRING | ปัญหาที่เชื่อมโยงกับเหตุการณ์ |
logs |
บันทึกซ้ำ | ข้อความบันทึกที่มีการประทับเวลาซึ่งสร้างโดย Crashlytics logger หากเปิดใช้ |
logs.message |
STRING | ข้อความที่บันทึก |
logs.timestamp |
การประทับเวลา | เวลาที่สร้างบันทึก |
memory |
RECORD | สถานะหน่วยความจำของอุปกรณ์ |
memory.free |
INT64 | หน่วยความจำที่เหลือเป็นไบต์ |
memory.used |
INT64 | ไบต์ของหน่วยความจำที่ใช้ |
operating_system |
RECORD | รายละเอียดของระบบปฏิบัติการในอุปกรณ์ |
operating_system.device_type |
STRING | ประเภทอุปกรณ์ (เช่น MOBILE , TABLET ,
TV ฯลฯ) หรือที่เรียกว่า "หมวดหมู่อุปกรณ์" |
operating_system.display_version |
STRING | เวอร์ชันของระบบปฏิบัติการในอุปกรณ์ |
operating_system.modification_state |
STRING | อุปกรณ์ได้รับการแก้ไขหรือไม่
(เช่น แอปที่เจลเบรกแล้วคือ MODIFIED และแอปที่รูทแล้วคือ
UNMODIFIED ) |
operating_system.name |
STRING | ชื่อของระบบปฏิบัติการในอุปกรณ์ |
operating_system.type |
STRING | (แอป Apple เท่านั้น) ประเภทของระบบปฏิบัติการที่ทำงานบนอุปกรณ์ (เช่น
IOS , MACOS ฯลฯ) |
platform |
STRING | แพลตฟอร์มของแอปตามที่ลงทะเบียนไว้ในโปรเจ็กต์ Firebase
(ค่าที่ใช้ได้: IOS หรือ ANDROID )
|
process_state |
STRING | BACKGROUND หรือ FOREGROUND |
storage |
RECORD | พื้นที่เก็บข้อมูลถาวรของอุปกรณ์ |
storage.free |
INT64 | ไบต์ของพื้นที่เก็บข้อมูลที่เหลือ |
storage.used |
INT64 | ไบต์ของพื้นที่เก็บข้อมูลที่ใช้ |
threads |
บันทึกซ้ำ | ชุดข้อความที่แสดงในขณะที่เกิดเหตุการณ์ |
threads.blamed |
BOOLEAN | ไม่ว่า Crashlytics จะพิจารณาว่าเฟรมนี้เป็นสาเหตุของการขัดข้อง หรือข้อผิดพลาดหรือไม่ |
threads.code |
INT64 | (แอปของ Apple เท่านั้น) รหัสข้อผิดพลาดของ NSError ที่บันทึกที่กำหนดเองของแอปพลิเคชัน |
threads.crash_address |
INT64 | ที่อยู่ของสัญญาณที่ทำให้แอปพลิเคชันขัดข้อง จะแสดงเฉพาะในเธรดเนทีฟที่ขัดข้อง |
threads.crashed |
BOOLEAN | ชุดข้อความขัดข้องหรือไม่ |
threads.frames |
บันทึกซ้ำ | เฟรมของเธรด |
threads.frames.address |
INT64 | ที่อยู่ในรูปภาพไบนารีที่มีโค้ด |
threads.frames.blamed |
BOOLEAN | ไม่ว่าCrashlyticsจะพิจารณาว่าเฟรมนี้เป็นสาเหตุของ ข้อผิดพลาดหรือไม่ |
threads.frames.file |
STRING | ชื่อของไฟล์เฟรม |
threads.frames.library |
STRING | ชื่อที่แสดงของไลบรารีที่มีเฟรม |
threads.frames.line |
INT64 | หมายเลขบรรทัดของไฟล์ของเฟรม |
threads.frames.offset |
INT64 | ออฟเซ็ตไบต์ในรูปภาพไบนารีที่มีโค้ด |
threads.frames.owner |
STRING | เช่น DEVELOPER , VENDOR ,
RUNTIME , PLATFORM หรือ SYSTEM |
threads.frames.symbol |
STRING | สัญลักษณ์ที่ไฮเดรตแล้ว หรือสัญลักษณ์ดิบหากไฮเดรตไม่ได้ |
threads.queue_name |
STRING | (แอปของ Apple เท่านั้น) คิวที่เธรดทำงานอยู่ |
threads.signal_code |
STRING | โค้ดของสัญญาณที่ทำให้แอปขัดข้อง โดยจะแสดงเฉพาะในเธรดดั้งเดิมที่ขัดข้อง เท่านั้น |
threads.signal_name |
STRING | ชื่อของสัญญาณที่ทำให้แอปขัดข้อง ซึ่งจะแสดงเฉพาะในเธรดเนทีฟที่ขัดข้องเท่านั้น |
threads.subtitle |
STRING | คำบรรยายของเธรด |
threads.thread_name |
STRING | ชื่อของเธรด |
threads.title |
STRING | ชื่อของชุดข้อความ |
unity_metadata.debug_build |
BOOLEAN | หากเป็นบิลด์การแก้ไขข้อบกพร่อง |
unity_metadata.graphics_copy_texture_support |
STRING | รองรับการคัดลอกพื้นผิวกราฟิกตามที่กำหนดไว้ใน Unity API |
unity_metadata.graphics_device_id |
INT64 | ตัวระบุของอุปกรณ์กราฟิก |
unity_metadata.graphics_device_name |
STRING | ชื่อของอุปกรณ์กราฟิก |
unity_metadata.graphics_device_type |
STRING | ประเภทของอุปกรณ์กราฟิก |
unity_metadata.graphics_device_vendor_id |
INT64 | ตัวระบุของผู้ให้บริการโปรเซสเซอร์กราฟิก |
unity_metadata.graphics_device_vendor |
STRING | ผู้จำหน่ายอุปกรณ์กราฟิก |
unity_metadata.graphics_device_version |
STRING | เวอร์ชันของอุปกรณ์กราฟิก |
unity_metadata.graphics_max_texture_size |
INT64 | ขนาดสูงสุดที่ใช้ในการแสดงผลพื้นผิว |
unity_metadata.graphics_memory_size_mb |
INT64 | หน่วยความจำกราฟิกในหน่วย MB |
unity_metadata.graphics_render_target_count |
INT64 | จำนวนเป้าหมายการแสดงผลกราฟิก |
unity_metadata.graphics_shader_level |
INT64 | ระดับ Shader ของกราฟิก |
unity_metadata.processor_count |
INT64 | จำนวนโปรเซสเซอร์ (คอร์) |
unity_metadata.processor_frequency_mhz |
INT64 | ความถี่ของโปรเซสเซอร์ในหน่วย MHz |
unity_metadata.processor_type |
STRING | ประเภทโปรเซสเซอร์ |
unity_metadata.screen_refresh_rate_hz |
INT64 | อัตราการรีเฟรชของหน้าจอในหน่วย Hz |
unity_metadata.screen_resolution_dpi |
STRING | DPI ของหน้าจอเป็นเลขทศนิยม |
unity_metadata.screen_size_px |
STRING | ขนาดหน้าจอเป็นพิกเซลในรูปแบบกว้าง x สูง |
unity_metadata.system_memory_size_mb |
INT64 | ขนาดหน่วยความจำของระบบในหน่วย Mb |
unity_metadata.unity_version |
STRING | เวอร์ชันของ Unity ที่ทำงานในอุปกรณ์นี้ |
user |
RECORD | (ไม่บังคับ) ข้อมูลที่รวบรวมเกี่ยวกับผู้ใช้แอป |
user.email |
STRING | (ไม่บังคับ) อีเมลของผู้ใช้ |
user.id |
STRING | (ไม่บังคับ) รหัสเฉพาะแอปที่เชื่อมโยงกับผู้ใช้ |
user.name |
STRING | (ไม่บังคับ) ชื่อของผู้ใช้ |
variant_id |
STRING | รูปแบบปัญหาที่เชื่อมโยงกับเหตุการณ์นี้ โปรดทราบว่าเหตุการณ์บางอย่างอาจไม่มีรูปแบบปัญหาที่เชื่อมโยง |
อัปเกรดเป็นโครงสร้างพื้นฐานการส่งออกใหม่
ในช่วงกลางเดือนตุลาคม 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
ขั้นตอนที่ 1: ข้อกำหนดเบื้องต้นสำหรับการอัปเกรด
ตรวจสอบว่าตารางกลุ่ม BigQuery ที่มีอยู่ใช้ ตัวระบุที่ตรงกันกับรหัสแพ็กเกจหรือชื่อแพ็กเกจ ที่ตั้งค่าไว้สำหรับแอป 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 ใช้โครงสร้างพื้นฐานการส่งออกใหม่แล้ว