ส่งออกข้อมูล Firebase Crashlytics ไปยัง BigQuery

คุณสามารถส่งออกข้อมูล 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 นอกเหนือจากตารางแบบกลุ่มแล้ว คุณจะมีตารางแบบเรียลไทม์ด้วย ความแตกต่างระหว่างตารางที่คุณควรทราบมีดังนี้

ตารางกลุ่ม ตารางแบบเรียลไทม์
  • ระบบจะส่งออกข้อมูลวันละครั้ง
  • ระบบจะจัดเก็บเหตุการณ์อย่างถาวรก่อนที่จะเขียนแบบเป็นกลุ่มไปยัง BigQuery
  • คุณป้อนข้อมูลย้อนหลังได้สูงสุด 30 วันก่อนหน้า*
  • ระบบจะส่งออกข้อมูลแบบเรียลไทม์
  • ไม่มีการแสดงโฆษณาสำรอง

ตารางกลุ่มเหมาะสําหรับการวิเคราะห์ระยะยาวและการระบุแนวโน้มเมื่อเวลาผ่านไป เนื่องจากเราจัดเก็บเหตุการณ์อย่างถาวรก่อนที่จะเขียน และสามารถป้อนข้อมูลย้อนหลัง ลงในตารางได้นานสูงสุด 30 วัน* เมื่อเขียนข้อมูลลงในตารางแบบเรียลไทม์ เราจะเขียนข้อมูลลงใน BigQuery ทันที จึงเหมาะสําหรับแดชบอร์ดแบบเรียลไทม์และการแจ้งเตือนที่กําหนดเอง ตารางทั้ง 2 ตารางนี้สามารถ รวมกับการค้นหาการเย็บเพื่อรับ ประโยชน์จากทั้ง 2 ตาราง

โดยค่าเริ่มต้น ตารางแบบเรียลไทม์จะมีเวลาหมดอายุของพาร์ติชันเป็น 30 วัน หากต้องการ ดูวิธีแก้ไขค่านี้ โปรดดูตั้งค่าการหมดอายุของพาร์ติชัน ในเอกสารประกอบของ BigQuery

* ดูรายละเอียดเกี่ยวกับการรองรับการแสดงโฆษณาสำรองได้ใน อัปเกรดเป็นโครงสร้างพื้นฐานการส่งออกใหม่



เปิดใช้การส่งออกไปยัง BigQuery

  1. ในFirebaseคอนโซล ให้ไปที่ หน้าการผสานรวม

  2. คลิกลิงก์ในการ์ด BigQuery

  3. ทำตามวิธีการบนหน้าจอเพื่อเปิดใช้การส่งออกไปยัง BigQuery

    หากต้องการเข้าถึงข้อมูล Crashlytics แบบเกือบเรียลไทม์ใน BigQuery โปรดพิจารณาอัปเกรดเป็นการส่งออกแบบสตรีม

เปิดใช้Crashlyticsการส่งออกสตรีมไปยัง BigQuery

  1. ในFirebaseคอนโซล ให้ไปที่ หน้าการผสานรวม

  2. คลิกจัดการในการ์ด BigQuery

  3. เลือกช่องทำเครื่องหมายรวมการสตรีม

การดำเนินการนี้จะเปิดใช้การสตรีมสำหรับแอปที่ลิงก์ทั้งหมด

สิ่งที่จะเกิดขึ้นเมื่อคุณเปิดใช้การส่งออก

  • คุณเลือกตำแหน่งชุดข้อมูล หลังจากสร้างชุดข้อมูลแล้ว คุณจะเปลี่ยนแปลงตำแหน่งไม่ได้ แต่จะคัดลอกชุดข้อมูลไปยังตำแหน่งอื่นหรือย้าย (สร้างใหม่) ชุดข้อมูลไปยังตำแหน่งอื่นด้วยตนเองได้ ดูข้อมูลเพิ่มเติมได้ที่เปลี่ยนตำแหน่งสำหรับการส่งออกที่มีอยู่

    ตำแหน่งนี้ใช้ได้กับข้อมูลที่ส่งออกไปยัง 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: จำนวนผู้ใช้ที่ได้รับผลกระทบจากปัญหาการขัดข้อง แยกตามประเทศ

ทีมของคุณตรวจพบข้อบกพร่องร้ายแรงระหว่างการเปิดตัวรุ่นใหม่ คุณใช้คำค้นหาจากตัวอย่าง"ค้นหาข้อขัดข้องที่เกิดขึ้นบ่อยที่สุด" ด้านบนเพื่อระบุรหัสปัญหาข้อขัดข้องที่เฉพาะเจาะจงได้ ตอนนี้ทีมของคุณต้องการทราบว่าข้อขัดข้องนี้ได้แพร่กระจายไปยังผู้ใช้ในประเทศต่างๆ ทั่วโลกหรือไม่

หากต้องการเขียนคําค้นหานี้ ทีมของคุณจะต้องทําสิ่งต่อไปนี้

  1. เปิดใช้การส่งออกข้อมูล Google Analytics ไปยัง BigQuery ดูส่งออกข้อมูลโปรเจ็กต์ไปยัง BigQuery

  2. อัปเดตแอปเพื่อส่งรหัสผู้ใช้ไปยังทั้ง 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");
    
  3. เขียนคําค้นหาที่ใช้ฟิลด์รหัสผู้ใช้เพื่อรวมเหตุการณ์ในชุดข้อมูล 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 คุณสามารถใช้ตัวอย่างเป็นเทมเพลต เพื่อสร้างรายงานและการแสดงภาพใหม่ๆ ได้อย่างรวดเร็วโดยอิงตามข้อมูลข้อขัดข้อง ดิบของแอปคุณเอง

  1. เปิด Crashlytics Looker Studio เทมเพลตแดชบอร์ด

  2. คลิกใช้เทมเพลตที่มุมขวาบน

  3. ในเมนูแบบเลื่อนลงแหล่งข้อมูลใหม่ ให้เลือกสร้างแหล่งข้อมูลใหม่

  4. คลิกเลือกในการ์ด BigQuery

  5. เลือกตารางที่มีข้อมูล Crashlytics ที่ส่งออกโดยเลือกโปรเจ็กต์ของฉัน > PROJECT_ID > firebase_crashlytics > TABLE_NAME

    คุณเลือกตารางกลุ่มได้เสมอ หากเปิดใช้ Crashlyticsการส่งออกแบบสตรีมไปยัง BigQuery คุณจะเลือกตารางแบบเรียลไทม์แทนได้

  6. ในส่วนการกำหนดค่า ให้ตั้งค่าCrashlytics ระดับเทมเพลตเป็น ค่าเริ่มต้น

  7. คลิกเชื่อมต่อเพื่อสร้างแหล่งข้อมูลใหม่

  8. คลิกเพิ่มลงในรายงานเพื่อกลับไปที่เทมเพลต Crashlytics

  9. สุดท้าย ให้คลิกสร้างรายงานเพื่อสร้างสำเนาของเทมเพลตแดชบอร์ด 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: ข้อกำหนดเบื้องต้นสำหรับการอัปเกรด

  1. ตรวจสอบว่าตารางกลุ่ม BigQuery ที่มีอยู่ใช้ ตัวระบุที่ตรงกันกับรหัสแพ็กเกจหรือชื่อแพ็กเกจ ที่ตั้งค่าไว้สำหรับแอป Firebase ที่ลงทะเบียนในโปรเจ็กต์ Firebase หากไม่ตรงกัน คุณอาจพบปัญหาเกี่ยวกับข้อมูลกลุ่มที่ส่งออก โปรเจ็กต์ส่วนใหญ่จะอยู่ในสถานะที่เหมาะสมและเข้ากันได้ แต่คุณควรตรวจสอบก่อนอัปเกรด

    • คุณดูแอป Firebase ทั้งหมดที่ลงทะเบียนในโปรเจ็กต์ Firebase ได้ใน Firebase คอนโซล: ไปที่ การตั้งค่าโปรเจ็กต์ จากนั้นเลื่อนไปที่การ์ดแอปของคุณเพื่อดูแอป Firebase ทั้งหมดและ ข้อมูลของแอป

    • คุณจะดูตารางกลุ่ม BigQuery ทั้งหมดได้ใน BigQuery หน้า ของคอนโซล Google Cloud

    ตัวอย่างเช่น สถานะที่เหมาะสมซึ่งคุณจะไม่มีปัญหาในการอัปเกรดมีดังนี้

    • คุณมีตารางกลุ่มชื่อ com_yourcompany_yourproject_IOS และแอป Firebase iOS+ ที่มี Bundle ID com.yourcompany.yourproject ซึ่งลงทะเบียนในโปรเจ็กต์ Firebase

    • คุณมีตารางกลุ่มชื่อ com_yourcompany_yourproject_ANDROID และ แอป Firebase บน Android ที่มีชื่อแพ็กเกจ com.yourcompany.yourproject ซึ่งลงทะเบียนในโปรเจ็กต์ Firebase

  2. หากคุณมีชื่อตารางกลุ่มที่ไม่ตรงกับ ตัวระบุที่ตั้งค่าไว้สำหรับแอป Firebase ที่ลงทะเบียน ให้ทำตามวิธีการ ในหน้านี้ในภายหลังก่อนที่จะอัปเกรดด้วยตนเองหรือ ก่อนวันที่ 15 กันยายน 2025 เพื่อไม่ให้การส่งออกกลุ่มหยุดชะงัก

ขั้นตอนที่ 2: อัปเกรดเป็นโครงสร้างพื้นฐานใหม่ด้วยตนเอง

หากเปิดใช้การส่งออกเป็นกลุ่มก่อนช่วงกลางเดือนตุลาคม 2024 คุณจะอัปเกรดเป็นโครงสร้างพื้นฐานใหม่ได้ด้วยตนเอง เพียงแค่สลับCrashlyticsการส่งออกข้อมูล เป็นปิด แล้วเปิดอีกครั้งในคอนโซล Firebase

ขั้นตอนโดยละเอียดมีดังนี้

  1. ในFirebaseคอนโซล ให้ไปที่ หน้าการผสานรวม

  2. คลิกจัดการในการ์ด BigQuery

  3. สลับแถบเลื่อน Crashlytics เป็นปิดเพื่อปิดใช้การส่งออก เมื่อได้รับข้อความแจ้ง ให้ยืนยันว่าคุณต้องการหยุดการส่งออกข้อมูล

  4. สลับCrashlyticsแถบเลื่อนเป็นเปิดอีกครั้งทันทีเพื่อเปิดใช้การส่งออกอีกครั้ง เมื่อได้รับข้อความแจ้ง ให้ยืนยันว่าต้องการส่งออกข้อมูล

    ตอนนี้การส่งออกข้อมูล Crashlytics ไปยัง BigQuery ใช้โครงสร้างพื้นฐานการส่งออกใหม่แล้ว

ชื่อตารางกลุ่มที่มีอยู่ไม่ตรงกับตัวระบุแอป Firebase