คุณสามารถส่งออกข้อมูล 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 Streaming คุณสามารถใช้แดชบอร์ดนี้เพื่อวัตถุประสงค์ใดก็ได้ที่ต้องใช้ข้อมูลแบบเรียลไทม์ เช่น การนำเสนอข้อมูลในแดชบอร์ดแบบเรียลไทม์ การดูการเปิดตัวแบบเรียลไทม์ หรือการตรวจสอบปัญหาของแอปพลิเคชันที่ทริกเกอร์การแจ้งเตือนและเวิร์กโฟลว์ที่กำหนดเอง
เมื่อเปิดใช้Crashlyticsการส่งออกแบบสตรีมไปยัง BigQuery คุณจะมีตารางแบบเรียลไทม์นอกเหนือจากตารางกลุ่ม ความแตกต่างที่คุณควรทราบระหว่างตารางมีดังนี้
ตารางกลุ่ม | ตารางแบบเรียลไทม์ |
---|---|
|
|
ตารางกลุ่มเหมาะสําหรับการวิเคราะห์ระยะยาวและระบุแนวโน้มเมื่อเวลาผ่านไป เนื่องจากเราจัดเก็บเหตุการณ์อย่างถาวรก่อนที่จะเขียน และสามารถทดแทนข้อมูลเหตุการณ์ลงในตารางได้สูงสุด 30 วัน* เมื่อเขียนข้อมูลลงในตารางแบบเรียลไทม์ เราจะเขียนข้อมูลลงใน BigQuery ทันที จึงเหมาะสําหรับหน้าแดชบอร์ดแบบเรียลไทม์และการแจ้งเตือนที่กําหนดเอง ตารางทั้ง 2 ตารางนี้สามารถรวมเข้ากับการค้นหาแบบต่อตะเข็บเพื่อให้ได้รับประโยชน์จากทั้ง 2 รายการ
โดยค่าเริ่มต้น ตารางแบบเรียลไทม์จะมีเวลาหมดอายุของพาร์ติชัน 30 วัน โปรดดูวิธีแก้ไขส่วนนี้ที่หัวข้อตั้งค่าวันที่หมดอายุของพาร์ติชันในเอกสารประกอบ BigQuery
* ดูรายละเอียดเกี่ยวกับการสนับสนุนโฆษณาทดแทนในอัปเกรดเป็นโครงสร้างพื้นฐานการส่งออกใหม่
เปิดใช้การส่งออกแบบสตรีม Crashlytics ไปยัง BigQuery
ในคอนโซล Firebase ให้ไปที่หน้าการผสานรวม
คลิกจัดการในการ์ด BigQuery
เลือกช่องทำเครื่องหมายรวมสตรีมมิง
การดำเนินการนี้จะเปิดใช้การสตรีมสำหรับแอปที่ลิงก์ทั้งหมด
คุณทําสิ่งใดได้บ้างกับข้อมูลที่ส่งออก
การส่งออกไปยัง BigQuery จะมีข้อมูลดิบเกี่ยวกับข้อขัดข้องต่างๆ เช่น ประเภทอุปกรณ์ ระบบปฏิบัติการ ข้อยกเว้น (แอป Android) หรือข้อผิดพลาด (แอป Apple) และบันทึกของ Crashlytics รวมถึงข้อมูลอื่นๆ
ตรวจสอบข้อมูล Crashlytics ที่ส่งออกและสคีมาของตารางในหน้านี้ในภายหลัง
ใช้เทมเพลต Data Studio
หากต้องการเปิดใช้ข้อมูลแบบเรียลไทม์ในเทมเพลต Data Studio โปรดทำตามวิธีการในการแสดงภาพข้อมูล Crashlytics ที่ส่งออกด้วย Data Studio
สร้างมุมมอง
คุณเปลี่ยนคําค้นหาเป็นมุมมองได้โดยใช้ UI ของ BigQuery โปรดดูวิธีการโดยละเอียดที่หัวข้อสร้างมุมมองในเอกสารประกอบBigQuery
เรียกใช้การค้นหา
ตัวอย่างต่อไปนี้แสดงการค้นหาที่คุณเรียกใช้ได้ในข้อมูลCrashlyticsเพื่อสร้างรายงานที่รวบรวมข้อมูลเหตุการณ์ข้อขัดข้องเป็นข้อมูลสรุปที่เข้าใจง่ายขึ้น เนื่องจากรายงานประเภทเหล่านี้ไม่พร้อมใช้งานในหน้าแดชบอร์ดCrashlyticsของคอนโซล 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 >= "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 ตารางแบบเรียลไทม์จะมีคอลัมน์เดียวกับตารางกลุ่ม โปรดทราบว่าคุณอาจมีคอลัมน์ในแถวที่แสดงเหตุการณ์ที่ไม่มีสแต็กเทรซ
คอลัมน์ภายในการส่งออกแสดงรายการอยู่ในตารางนี้
ชื่อช่อง | ประเภทข้อมูล | คำอธิบาย |
---|---|---|
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 |
RECORD ซ้ำ | คู่คีย์-ค่าที่นักพัฒนาแอปกำหนด |
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 |
RECORD ซ้ำ | ข้อความบันทึกที่มีการประทับเวลาซึ่งสร้างโดยCrashlytics Logger หากเปิดใช้ |
logs.timestamp |
การประทับเวลา | เวลาที่บันทึก |
logs.message |
STRING | ข้อความที่บันทึก |
breadcrumbs |
RECORD ซ้ำ | Google Analyticsเบรดครัมบ์ที่มีการประทับเวลา หากเปิดใช้ |
breadcrumbs.timestamp |
การประทับเวลา | การประทับเวลาที่เชื่อมโยงกับเบรดครัมบ์ |
breadcrumbs.name |
STRING | ชื่อที่เชื่อมโยงกับเบรดครัมบ์ |
breadcrumbs.params |
บันทึกซ้ำ | พารามิเตอร์ที่เชื่อมโยงกับเบรดครัมบ์ |
breadcrumbs.params.key |
STRING | คีย์พารามิเตอร์ที่เชื่อมโยงกับเบรดครัมบ์ |
breadcrumbs.params.value |
STRING | ค่าพารามิเตอร์ที่เชื่อมโยงกับเบรดครัมบ์ |
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 |
RECORD ซ้ำ | (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 |
RECORD ซ้ำ | เฟรมที่เชื่อมโยงกับข้อยกเว้น |
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 |
RECORD ซ้ำ | (แอปของ Apple เท่านั้น) ข้อผิดพลาดที่ไม่ร้ายแรง |
error.queue_name |
STRING | คิวที่ชุดข้อความทำงานอยู่ |
error.code |
INT64 | รหัสข้อผิดพลาดที่เชื่อมโยงกับ NSError ที่กำหนดเองที่บันทึกไว้ของแอป |
error.title |
STRING | ชื่อชุดข้อความ |
error.subtitle |
STRING | คำบรรยายของชุดข้อความ |
error.blamed |
BOOLEAN | Crashlytics ระบุว่าเฟรมนี้เป็นสาเหตุของข้อผิดพลาดหรือไม่ |
error.frames |
บันทึกซ้ำ | เฟรมของสแต็กเทรซ |
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 ระดับเทมเพลตเป็น Default
คลิกเชื่อมต่อเพื่อสร้างแหล่งข้อมูลใหม่
คลิกเพิ่มลงในรายงานเพื่อกลับไปที่เทมเพลต Crashlytics
สุดท้าย ให้คลิกสร้างรายงานเพื่อสร้างสําเนาCrashlytics เทมเพลตแดชบอร์ด Data Studio
อัปเกรดเป็นโครงสร้างพื้นฐานการส่งออกใหม่
เมื่อช่วงกลางเดือนตุลาคม 2024 Crashlytics ได้เปิดตัวโครงสร้างพื้นฐานใหม่สำหรับการส่งออกข้อมูล Crashlytics ไปยัง BigQuery ขณะนี้ คุณจะอัปเกรดเป็นโครงสร้างพื้นฐานใหม่นี้หรือไม่ก็ได้
โครงสร้างพื้นฐานใหม่นี้รองรับตำแหน่งชุดข้อมูล Crashlytics ที่อยู่นอกสหรัฐอเมริกา
หากเปิดใช้การส่งออกก่อนช่วงกลางเดือนตุลาคม 2024 ตอนนี้คุณสามารถเลือกเปลี่ยนตำแหน่งการส่งออกข้อมูลเป็นตำแหน่งชุดข้อมูลที่ BigQuery รองรับได้
หากคุณเปิดใช้การส่งออกในช่วงกลางเดือนตุลาคม 2024 เป็นต้นไป คุณจะเลือกตำแหน่งชุดข้อมูลที่รองรับBigQueryได้ในระหว่างการตั้งค่า
อีกความแตกต่างหนึ่งของโครงสร้างพื้นฐานใหม่คือไม่รองรับการทดแทนข้อมูลจากก่อนที่คุณเปิดใช้การส่งออก (สำหรับโครงสร้างพื้นฐานแบบเดิม คุณจะทดแทนข้อมูลได้นานสูงสุด 30 วันก่อนถึงวันที่เปิดใช้งาน) โครงสร้างพื้นฐานใหม่รองรับการทดแทนสูงสุด 30 วันที่ผ่านมา หรือวันที่ล่าสุดที่คุณเปิดใช้การส่งออกไปยัง BigQuery (แล้วแต่ว่าวันที่ใดจะล่าสุด)
ข้อกําหนดเบื้องต้นในการอัปเกรด
ก่อนอัปเกรดเป็นโครงสร้างพื้นฐานใหม่ โปรดตรวจสอบว่าคุณมีคุณสมบัติตรงตามข้อกําหนดเบื้องต้นต่อไปนี้ ตาราง BigQuery ของกลุ่มปัจจุบันของคุณมีตัวระบุที่ตรงกับรหัสกลุ่มหรือชื่อแพ็กเกจที่ตั้งไว้สําหรับแอป Firebase ที่ลงทะเบียน
เช่น
หากคุณมีตาราง BigQuery ที่มีชื่อว่า
com_yourcompany_yourproject_IOS
คุณควรมีแอป Firebase iOS+ ที่ลงทะเบียนในโปรเจ็กต์ Firebase ด้วยรหัสกลุ่มcom.yourcompany.yourproject
หากคุณมีตาราง BigQuery ที่มีชื่อว่า
com_yourcompany_yourproject_ANDROID
คุณควรมีแอป Android ใน Firebase ที่ลงทะเบียนในโปรเจ็กต์ Firebase ด้วยชื่อแพ็กเกจcom.yourcompany.yourproject
วิธีค้นหาแอป Firebase ทั้งหมดที่ลงทะเบียนไว้ในโปรเจ็กต์ Firebase มีดังนี้
ในคอนโซล Firebase ให้ไปที่ การตั้งค่าโปรเจ็กต์
เลื่อนลงไปที่การ์ดแอปของคุณ แล้วคลิกแอป Firebase ที่ต้องการ เพื่อดูข้อมูลของแอป ซึ่งรวมถึงตัวระบุ
โครงสร้างพื้นฐานการส่งออกใหม่จะส่งออกข้อมูลของแอปแต่ละรายการตามชื่อแพ็กเกจหรือรหัสกลุ่มที่ตั้งไว้สําหรับแอป Firebase ที่ลงทะเบียนไว้ คุณต้องตรวจสอบว่าตารางกลุ่มปัจจุบันมีชื่อที่ถูกต้องแล้วเพื่อให้โครงสร้างพื้นฐานใหม่เพิ่มข้อมูลใหม่ทั้งหมดลงในตารางที่มีอยู่ได้ เพื่อไม่ให้BigQueryเวิร์กโฟลว์ของคุณหยุดชะงัก หากคุณมีชื่อตารางกลุ่มที่ไม่ตรงกับแอป Firebase ที่ลงทะเบียนไว้ แต่ยังคงต้องการอัปเกรด ให้ติดต่อทีมสนับสนุนของ Firebase
วิธีอัปเกรดเป็นโครงสร้างพื้นฐานใหม่
หากเปิดใช้การส่งออกแล้ว คุณจะอัปเกรดเป็นโครงสร้างพื้นฐานใหม่ได้ง่ายๆ โดยปิดCrashlyticsการส่งออกข้อมูลแล้วเปิดอีกครั้งในFirebaseคอนโซล
ขั้นตอนโดยละเอียดมีดังนี้
ในคอนโซล Firebase ให้ไปที่หน้าการผสานรวม
คลิกจัดการในการ์ด BigQuery
สลับแถบเลื่อน Crashlytics ปิดเพื่อปิดใช้การส่งออก เมื่อได้รับข้อความแจ้ง ให้ยืนยันว่าคุณต้องการหยุดการส่งออกข้อมูล
สลับแถบเลื่อน Crashlytics เป็นเปิดทันทีเพื่อเปิดใช้การส่งออกอีกครั้ง เมื่อได้รับข้อความแจ้ง ให้ยืนยันว่าต้องการส่งออกข้อมูล
ตอนนี้การส่งออกข้อมูล Crashlytics ไปยัง BigQuery ใช้โครงสร้างพื้นฐานการส่งออกใหม่แล้ว