Catch up on everthing we announced at this year's Firebase Summit. Learn more

จัดการการติดตั้ง Firebase

บริการติดตั้ง Firebase (FIS) จัดเตรียมรหัสการติดตั้ง Firebase (FID) สำหรับแต่ละอินสแตนซ์ที่ติดตั้งของแอป Firebase ID การติดตั้ง Firebase ถูกใช้ภายในโดยบริการ Firebase เหล่านี้:

บริการ Firebase ฟังก์ชันการติดตั้ง Firebase
การส่งข้อความบนคลาวด์ของ Firebase

Firebase Cloud Messaging ใช้รหัสการติดตั้ง Firebase เพื่อกำหนดเป้าหมายอุปกรณ์สำหรับการส่งข้อความ

การส่งข้อความในแอปของ Firebase

การส่งข้อความในแอปของ Firebase ใช้รหัสการติดตั้ง Firebase เพื่อกำหนดเป้าหมายอุปกรณ์สำหรับการส่งข้อความ

การตรวจสอบประสิทธิภาพของ Firebase

การตรวจสอบประสิทธิภาพใช้รหัสการติดตั้ง Firebase เพื่อคำนวณจำนวนการติดตั้ง Firebase ที่ไม่ซ้ำกันซึ่งเข้าถึงทรัพยากรเครือข่าย เพื่อให้แน่ใจว่ารูปแบบการเข้าถึงนั้นไม่ระบุตัวตนเพียงพอ นอกจากนี้ยังใช้รหัสการติดตั้ง Firebase กับการกำหนดค่าระยะไกลของ Firebase เพื่อจัดการอัตราการรายงานเหตุการณ์ประสิทธิภาพ

การคาดการณ์ Firebase

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

Google Analytics สำหรับ Firebase

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

การกำหนดค่าระยะไกลของ Firebase

การกำหนดค่าระยะไกลใช้รหัสการติดตั้ง Firebase เพื่อเลือกค่าการกำหนดค่าเพื่อกลับไปยังอุปกรณ์ของผู้ใช้ปลายทาง

Firebase ML

ข้อมูลประจำตัวที่เรียกว่า การติดตั้งราชสกุลรับรองความถูกต้อง จะถูกใช้โดย Firebase ML สำหรับการตรวจสอบอุปกรณ์เมื่อมีปฏิสัมพันธ์กับกรณีแอปเช่นการแจกจ่ายรุ่นนักพัฒนาแอพพลิเคอินสแตนซ์

โดยทั่วไป บริการ Firebase จะใช้บริการการติดตั้ง Firebase โดยที่นักพัฒนาซอฟต์แวร์ไม่ต้องโต้ตอบโดยตรงกับ FIS API อย่างไรก็ตาม มีบางกรณีที่นักพัฒนาแอปอาจต้องการเรียก FIS API โดยตรง เช่น

  • ในการลบการติดตั้ง Firebase และข้อมูลที่เชื่อมโยงกับการติดตั้ง
  • เพื่อดึงข้อมูลตัวระบุ (ID การติดตั้ง Firebase) เพื่อกำหนดเป้าหมายการติดตั้งแอพเฉพาะ
  • เพื่อดึงโทเค็นการตรวจสอบสิทธิ์การติดตั้งเพื่อตรวจสอบการติดตั้ง Firebase

ในการเริ่มต้นเรียกใช้ FIS API โดยตรง ให้เพิ่ม SDK ลงในแอปของคุณ

เพิ่ม SDK การติดตั้ง Firebase ให้กับแอปของคุณ

iOS+

  1. เพิ่มการพึ่งพาสำหรับการติดตั้ง Firebase จะ Podfile คุณ:
    pod 'Firebase/Installations'
  2. เรียก pod install และเปิดสร้าง .xcworkspace ไฟล์
  3. นำเข้าโมดูล Firebase ในของคุณ UIApplicationDelegate :

    Swift

    import Firebase

    วัตถุประสงค์-C

    @import Firebase;
  4. กำหนดค่า FirebaseApp ที่ใช้ร่วมกันเช่นปกติในของแอป application:didFinishLaunchingWithOptions: วิธีการ:

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    วัตถุประสงค์-C

    // Use Firebase library to configure APIs
    [FIRApp configure];

Android

เพิ่มการพึ่งพาสำหรับการติดตั้ง Firebase Android SDK เพื่อโมดูลของคุณ (app ระดับ) ไฟล์ Gradle (ปกติ app/build.gradle ):

implementation 'com.google.firebase:firebase-installations:17.0.0'

JavaScript

ทั้งนี้ขึ้นอยู่กับวิธีการประยุกต์เว็บของคุณจะเป็นเจ้าภาพการกำหนดค่าของคุณอาจจะถูกจัดการโดยอัตโนมัติหรือคุณอาจจะต้องอัปเดต การกำหนดค่าวัตถุ Firebase

ตัวอย่างเช่น หากการพึ่งพาของคุณถูกเพิ่มใน index.html ให้เพิ่มการพึ่งพาในองค์ประกอบ <head>:

<script src="/__/firebase/9.5.0/firebase-installations.js"></script>

ลบการติดตั้ง Firebase

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

ID การติดตั้ง Firebase นั้นแตกต่างกันสำหรับการติดตั้งแต่ละครั้งของทุกแอปพลิเคชัน แอปพลิเคชันต่างๆ บนอุปกรณ์เดียวกันมีรหัสการติดตั้ง Firebase ต่างกัน รหัสการติดตั้ง Firebase จะระบุการติดตั้งแอปและข้อมูลที่เชื่อมโยงกับการติดตั้งแอปเหล่านั้น

เมื่อคุณลบรหัสการติดตั้ง ข้อมูลที่เชื่อมโยงกับรหัสการติดตั้งนั้นจะถูกลบออกจากระบบที่ใช้งานจริงและระบบสำรองข้อมูลของบริการ Firebase ทั้งหมดที่ใช้รหัสการติดตั้ง Firebase เพื่อระบุการติดตั้งภายใน 180 วัน ขั้นตอนนี้จะอธิบายไว้ในระดับสูงใน Google ของ คำสั่งเกี่ยวกับการลบและการเก็บรักษา

เว้นแต่คุณจะปิดใช้งานบริการที่สร้าง FID ทั้งหมดในแอปของคุณ FIS จะสร้าง ID ใหม่ภายในสองสามวัน Firebase จะถือว่า ID ที่สร้างขึ้นใหม่นั้นเป็นการติดตั้ง Firebase ใหม่ และไม่เชื่อมโยงกับ ID หรือข้อมูลก่อนหน้าไม่ว่าในทางใด

ลบ FID ด้วยการเรียก API ไคลเอ็นต์

หากต้องการลบ FID ที่สร้างโดยบริการ Firebase ให้เรียกวิธีการที่เหมาะสมจาก SDK การติดตั้ง Firebase:

Swift

Installations.installations().delete { error in
  if let error = error {
    print("Error deleting installation: \(error)")
    return
  }
  print("Installation deleted");
}

วัตถุประสงค์-C

[[FIRInstallations installations] deleteWithCompletion:^(NSError *error) {
   if (error != nil) {
     NSLog(@"Error deleting Installation %@", error);
     return;
   }
   NSLog(@"Installation deleted");
}];

Java

FirebaseInstallations.getInstance().delete()
        .addOnCompleteListener(new OnCompleteListener<Void>() {
    @Override
    public void onComplete(@NonNull Task<Void> task) {
        if (task.isSuccessful()) {
            Log.d("Installations", "Installation deleted");
        } else {
            Log.e("Installations", "Unable to delete Installation");
        }
    }
});

คอตลิน+KTX

FirebaseInstallations.getInstance().delete().addOnCompleteListener { task ->
    if (task.isComplete) {
        Log.d("Installations", "Installation deleted")
    }  else {
        Log.e("Installations", "Unable to delete Installation")
    }
}

JavaScript

await firebase.installations().delete();

ลบ FID ด้วยการเรียก API ของเซิร์ฟเวอร์

ในการลบ FID กับสายเซิร์ฟเวอร์ API, เพิ่ม Firebase SDK ผู้ดูแลระบบเซิร์ฟเวอร์ของคุณ ถ้าคุณยังไม่ได้

เมื่อเพิ่ม SDK แล้ว ให้ลบ FID ผ่านการเรียกใช้ฟังก์ชันการลบในภาษาที่คุณเลือก (หมายเหตุ: ยกเว้น Node.js วิธีการเหล่านี้สะท้อนการตั้งชื่อ ID อินสแตนซ์ อย่างไรก็ตาม ทั้งหมดจะลบ FID เมื่อถูกเรียกด้วย Firebase ปัจจุบัน เอสดีเค)

Node.js

// An FIDsent from a client service SDK
const idToDelete = 'eyJhbGciOiJFUzI1N_iIs5';

admin.installations().deleteInstallation(idToDelete);

Java

// An FID sent from a client service SDK
String idToDelete = "eyJhbGciOiJFUzI1N_iIs5";

FirebaseInstanceId.getInstance().deleteInstanceIdAsync(idToDelete).get();

Python

  from firebase_admin import instance_id

  # An FID sent from a client service SDK
  id_to_delete = 'eyJhbGciOiJFUzI1N_iIs5'

  instance_id.delete_instance_id(id_to_delete)

ไป

client, err := app.InstanceId(ctx)
if err != nil {
  log.Fatalln("error initializing client", err)
}

iidToDelete := "eyJhbGciOiJFUzI1N_iIs5"
if err := client.DeleteInstanceId(ctx, iidToDelete); err != nil {
  log.Fatalln("error deleting FID", err)
}

เมื่อคุณลบ ID การติดตั้ง Firebase ด้วยการเรียก API ของเซิร์ฟเวอร์ บริการ Firebase จะเริ่มกระบวนการเพื่อลบข้อมูลที่เชื่อมโยงกับ ID การติดตั้งนั้น หยุดรับข้อมูลใหม่สำหรับ ID นั้นในช่วง 1-2 วัน จากนั้นจึงแจ้งแอปไคลเอนต์ ว่าไอดีถูกลบ บริการบางอย่างของแอปอาจยังคงกำหนดเป้าหมาย ID จนกว่า Firebase จะแจ้งแอปไคลเอ็นต์ เช่น การติดตั้ง Firebase อาจยังคงได้รับการแจ้งเตือน FCM ต่อไปอีกสองสามชั่วโมง

หากคุณต้องการลบ ID การติดตั้ง Firebase ปัจจุบันและใช้บริการ Firebase ทันทีด้วย ID ใหม่ที่ไม่เกี่ยวข้อง ให้ใช้ API ของไคลเอ็นต์เพื่อจัดการการลบ

ดึงข้อมูลประจำตัวลูกค้า

หากคุณมีข้อกำหนดในการระบุการติดตั้งแอปของคุณโดยเฉพาะ คุณสามารถทำได้โดยเรียกรหัสการติดตั้ง Firebase ตัวอย่างเช่น หากต้องการทำการทดสอบระหว่างการพัฒนา Firebase In-App Messaging คุณสามารถระบุและกำหนดเป้าหมายอุปกรณ์ทดสอบที่ถูกต้องโดยใช้รหัสการติดตั้ง Firebase

ในการดึง ID การติดตั้ง Firebase:

Swift

Installations.installations().installationID { (id, error) in
  if let error = error {
    print("Error fetching id: \(error)")
    return
  }
  guard let id = id else { return }
  print("Installation ID: \(id)")
}

วัตถุประสงค์-C

[[FIRInstallations installations] installationIDWithCompletion:^(NSString *identifier, NSError *error) {
  if (error != nil) {
    NSLog(@"Error fetching Installation ID %@", error);
    return;
  }
  NSLog(@"Installation ID: %@", identifier);
}];

Java

FirebaseInstallations.getInstance().getId()
        .addOnCompleteListener(new OnCompleteListener<String>() {
    @Override
    public void onComplete(@NonNull Task<String> task) {
        if (task.isSuccessful()) {
            Log.d("Installations", "Installation ID: " + task.getResult());
        } else {
            Log.e("Installations", "Unable to get Installation ID");
        }
    }
});

คอตลิน+KTX

FirebaseInstallations.getInstance().id.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        Log.d("Installations", "Installation ID: " + task.result)
    } else {
        Log.e("Installations", "Unable to get Installation ID")
    }
}

JavaScript

const installationId = await firebase.installations().getId();
console.log(installationId);

เรียกโทเค็นการตรวจสอบสิทธิ์การติดตั้ง

บริการ Firebase สามารถรับรองความถูกต้องของการติดตั้ง Firebase ด้วยโทเค็นการตรวจสอบสิทธิ์ที่ดึงมาจาก FIS ตัวอย่างเช่น เมื่อออกแบบการทดสอบ A/B สำหรับการกำหนดค่าระยะไกล คุณสามารถรับรองความถูกต้องอุปกรณ์ทดสอบที่เป็นเป้าหมายโดยใช้โทเค็นการตรวจสอบสิทธิ์การติดตั้ง

โทเค็นการตรวจสอบสิทธิ์การติดตั้งเป็นโทเค็นผู้ถือที่มีอายุสั้นในรูปแบบโทเค็นเว็บ JSON (JWT) ที่มีข้อมูลต่อไปนี้สำหรับการติดตั้ง:

  • ID การติดตั้ง Firebase
  • โครงการที่เกี่ยวข้อง ( projectNumber )
  • ที่เกี่ยวข้อง Firebase ID โปรแกรมประยุกต์ ( appId )
  • วันหมดอายุของโทเค็น

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

ในการดึงโทเค็นการตรวจสอบสิทธิ์การติดตั้ง:

Swift

Installations.installations().authTokenForcingRefresh(true, completion: { (result, error) in
  if let error = error {
    print("Error fetching token: \(error)")
    return
  }
  guard let result = result else { return }
  print("Installation auth token: \(result.authToken)")
})

วัตถุประสงค์-C

[[FIRInstallations installations] authTokenForcingRefresh:true
                                               completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) {
  if (error != nil) {
    NSLog(@"Error fetching Installation token %@", error);
    return;
  }
  NSLog(@"Installation auth token: %@", [result authToken]);
}];

Java

FirebaseInstallations.getInstance().getToken(/* forceRefresh */true)
        .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() {
    @Override
    public void onComplete(@NonNull Task<InstallationTokenResult> task) {
        if (task.isSuccessful() && task.getResult() != null) {
            Log.d("Installations", "Installation auth token: " + task.getResult().getToken());
        } else {
            Log.e("Installations", "Unable to get Installation auth token");
        }
    }
});

คอตลิน+KTX

FirebaseInstallations.getInstance().getToken(/* forceRefresh */ true)
    .addOnCompleteListener { task ->
        if (task.isSuccessful) {
            Log.d("Installations", "Installation auth token: " + task.result?.token)
        } else {
            Log.e("Installations", "Unable to get Installation auth token")
        }
    }

JavaScript

const installationToken = await firebase.installations()
    .getToken(/* forceRefresh */ true);
console.log(installationToken);

ตรวจสอบวงจรชีวิต ID การติดตั้ง Firebase

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

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

เมื่อแอปประสบการหมุนหรือลบ FID ในกรณีประเภทนี้ แอปจะได้รับ FID ใหม่ นอกจากนี้ โทเค็นการตรวจสอบสิทธิ์การติดตั้งที่เชื่อมโยงกับ FID ที่ถูกลบจะถูกลบออก โดยไม่คำนึงถึงวุฒิภาวะของตัวเอง และจะถูกแทนที่ด้วยโทเค็นการตรวจสอบสิทธิ์การติดตั้งใหม่

แอพสามารถตรวจสอบการเปลี่ยนแปลงเหล่านี้และตอบสนองตามนั้น

ในการตรวจสอบการหมุน FID:

Swift

installationIDObserver = NotificationCenter.default.addObserver(
        forName: .InstallationIDDidChange,
        object: nil,
        queue: nil
) { (notification) in
  // Fetch new Installation ID
  self.fetchInstallationToken()
}

วัตถุประสงค์-C

__weak __auto_type weakSelf = self;
self.installationIDObserver = [[NSNotificationCenter defaultCenter]
        addObserverForName: FIRInstallationIDDidChangeNotification
                    object:nil
                     queue:nil
                usingBlock:^(NSNotification * _Nonnull notification) {
    // Fetch new Installation ID
    [weakSelf fetchInstallationsID];
}];

NSNotification ชื่อ NSNotificationName.InstallationIDDidChange ถูกโพสต์ที่จะเริ่มต้นเมื่อใดก็ตามที่ NSNotificationCenter FID ใหม่ที่ได้รับมอบหมาย

Android

ไคลเอ็นต์ Kotlin และ Java ควรเพิ่มตรรกะการลองใหม่เพื่อตอบสนองต่อการโทรที่ล้มเหลวเพื่อดึง FID ใหม่

JavaScript

ปพลิเคชันเว็บสามารถสมัคร onIdChange เบ็ด

เมื่อใดก็ตามที่มีการสร้าง FID ใหม่ การเรียกกลับที่สมัครรับข้อมูลจะถูกทริกเกอร์:

await firebase.installations().onIdChange((newId) => {
  console.log(newId);
  // TODO: Handle new installation ID.
});

ย้ายจาก Instance ID ไปยังการติดตั้ง Firebase

ก่อนเปิดตัวการติดตั้ง Firebase Firebase อาศัย Instance ID SDK สำหรับตัวระบุการติดตั้งแอป การติดตั้ง Firebase มีข้อได้เปรียบเหนือ Instance ID ในด้านความน่าเชื่อถือ ประสิทธิภาพ และความปลอดภัย แอป Firebase ที่ขึ้นอยู่กับ Instance ID SDK ควรย้ายไปยังการติดตั้ง Firebase

กระบวนการย้ายข้อมูลจะแตกต่างกันไปตามแอปของคุณ:

  • ปพลิเคชันที่ไม่ได้โดยตรงเรียกใช้อินสแตนซ์ ID APIs สามารถโยกย้ายโดย การปรับปรุงรุ่น SDK ของพวกเขา แอป Firebase ส่วนใหญ่จัดอยู่ในหมวดหมู่นี้

  • ปพลิเคชันอย่างชัดเจนว่าโทร API เพื่อ Instance ID ต้องปรับปรุงรุ่น SDK และ รหัสทำการเปลี่ยนแปลง ที่จะเปลี่ยนวิธีการอินสแตนซ์ ID ด้วยการติดตั้ง Firebase หรือเทียบเท่า FCM หากแอปของคุณใช้ Instance ID เพื่อดึงโทเค็นการลงทะเบียน FCM หรือใช้ Instance ID อย่างชัดแจ้งเพื่อกำหนดเป้าหมายอินสแตนซ์ของแอปหรือเพื่อวัตถุประสงค์อื่นใด คุณจะต้องอัปเดตรหัสแอปพลิเคชันของคุณ

ปัจจุบัน FIS สามารถใช้งานร่วมกับ Firebase Instance ID รุ่นเก่าได้ การลบ IID เป็นวิธีทางเลือกของการร้องขอการลบข้อมูลเหล่านี้ Firebase SDKs:

  • iOS 6.14.0 และต่ำกว่า
  • Android SDK ก่อนวันที่ 27 กุมภาพันธ์ 2020

ซึ่งหมายความว่าแอปที่ไม่จำเป็นที่จะโยกย้ายไปติดตั้ง Firebase; อย่างไรก็ตาม ขอแนะนำให้ทำเช่นนี้

การอัปเกรดเป็นเวอร์ชัน SDK ขั้นต่ำสำหรับการติดตั้ง Firebase

หากต้องการย้ายจากรหัสอินสแตนซ์ไปเป็นการติดตั้ง Firebase ตรวจสอบให้แน่ใจว่าแอปพลิเคชันของคุณใช้หมายเลขเวอร์ชันขั้นต่ำที่ระบุไว้ของ Firebase SDK ต่อไปนี้เป็นอย่างน้อย

Firebase SDK เวอร์ชัน Android ขั้นต่ำ เวอร์ชัน iOS ขั้นต่ำ
การส่งข้อความบนคลาวด์ของ Firebase v20.3.0 v6.34.0
การกำหนดค่าระยะไกล v19.2.0 v6.24.0
Google Analytics สำหรับ Firebase \ (การวัด SDK) v17.4.4 v6.18.0
การส่งข้อความในแอป v19.0.7 v6.24.0
การตรวจสอบประสิทธิภาพ v19.0.8 v6.21.0
Crashlytics v17.2.1 v6.23.0
ML Kit v22.1.2 v6.28.0

กำลังอัปเดตโค้ดที่เรียกใช้ Instance ID API อย่างชัดเจน

หากแอป Android หรือ Apple ของคุณใช้วิธี SDK รหัสอินสแตนซ์โดยตรง คุณสามารถแทนที่การใช้งานนั้นด้วยทางเลือกที่เหมือนกันใน SDK การติดตั้ง Firebase หรือ FCM SDK

กำลังเรียกตัวระบุ

วิธีการรับ ID อินสแตนซ์จะถูกแทนที่ด้วยวิธีการรับ ID การติดตั้ง ตัวอย่างเช่น:

ก่อน

Swift

Messaging.messaging().token { token, error in
  if let error = error {
    print("Error fetching remote FCM registration token: \(error)")
  } else if let token = token {
    print("Remote instance ID token: \(token)")
    self.remoteFCMTokenMessage.text = "Remote FCM registration token: \(token)"
  }
}

วัตถุประสงค์-C

[[FIRMessaging messaging] tokenWithCompletion:^(NSString * _Nullable token, NSError * _Nullable error) {
   if (error != nil) {
     NSLog(@"Error fetching the remote FCM registration token: %@", error);
   } else {
     NSLog(@"Remote FCM registration token: %@", token);
     NSString* message =
       [NSString stringWithFormat:@"FCM registration token: %@", token];
     self.remoteFCMTokenMessage.text = message;
   }
 }];

Java

FirebaseInstanceId.getInstance().getInstanceId()
        .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
            @Override
            public void onComplete(@NonNull Task<InstanceIdResult> task) {
                Log.d("IID_TOKEN", task.getResult().getToken());
            }
        });

คอตลิน+KTX

FirebaseInstanceId.getInstance().instanceId
        .addOnSuccessListener { result ->
            Log.d("IID_TOKEN", result.token)
        }

หลังจาก

Swift

Installations.installations().installationID { (id, error) in
  if let error = error {
    print("Error fetching id: \(error)")
    return
  }
  guard let id = id else { return }
  print("Installation ID: \(id)")
}

วัตถุประสงค์-C

[[FIRInstallations installations] installationIDWithCompletion:^(NSString *identifier, NSError *error) {
  if (error != nil) {
    NSLog(@"Error fetching Installation ID %@", error);
    return;
  }
  NSLog(@"Installation ID: %@", identifier);
}];

Java

FirebaseInstallations.getInstance().getId()
        .addOnCompleteListener(new OnCompleteListener<String>() {
    @Override
    public void onComplete(@NonNull Task<String> task) {
        if (task.isSuccessful()) {
            Log.d("Installations", "Installation ID: " + task.getResult());
        } else {
            Log.e("Installations", "Unable to get Installation ID");
        }
    }
});

คอตลิน+KTX

FirebaseInstallations.getInstance().id.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        Log.d("Installations", "Installation ID: " + task.result)
    } else {
        Log.e("Installations", "Unable to get Installation ID")
    }
}

การลบตัวระบุ

วิธีการลบ ID อินสแตนซ์จะถูกแทนที่ด้วยวิธีการลบ ID การติดตั้ง Firebase ตัวอย่างเช่น:

ก่อน

Swift

InstanceID.instanceID().deleteID { error in
  if let error = error {
    print("Error deleting instance ID: \(error)")
  }
}

วัตถุประสงค์-C

[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
  if error != nil {
    NSLog(@"Error deleting instance ID: %@", error);
  }
}];

Android

FirebaseInstanceId.deleteInstanceId();

หลังจาก

Swift

func delete(completion: @escaping (Error?) -> Void)

วัตถุประสงค์-C

- (void)deleteWithCompletion:(nonnull void (^)(NSError *_Nullable))completion;

Java

FirebaseInstallations.getInstance().delete()
        .addOnCompleteListener(new OnCompleteListener<Void>() {
    @Override
    public void onComplete(@NonNull Task<Void> task) {
        if (task.isSuccessful()) {
            Log.d("Installations", "Installation deleted");
        } else {
            Log.e("Installations", "Unable to delete Installation");
        }
    }
});

คอตลิน+KTX

FirebaseInstallations.getInstance().delete().addOnCompleteListener { task ->
    if (task.isComplete) {
        Log.d("Installations", "Installation deleted")
    }  else {
        Log.e("Installations", "Unable to delete Installation")
    }
}

การรับโทเค็นการลงทะเบียน FCM

ก่อนการเปิดตัวการติดตั้ง Firebase ไคลเอ็นต์ FCM จะเรียกข้อมูลโทเค็นการลงทะเบียนจาก ID อินสแตนซ์ ตอนนี้ FCM SDK มีวิธีการดึงโทเค็นการลงทะเบียน

ก่อน

Java

FirebaseInstanceId.getInstance().getInstanceId()
        .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
            @Override
            public void onComplete(@NonNull Task<InstanceIdResult> task) {
                if (!task.isSuccessful()) {
                    Log.w(TAG, "getInstanceId failed", task.getException());
                    return;
                }

                // Get new Instance ID token
                String token = task.getResult().getToken();

                // Log and toast
                String msg = getString(R.string.msg_token_fmt, token);
                Log.d(TAG, msg);
                Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
        });

คอตลิน+KTX

FirebaseInstanceId.getInstance().instanceId
        .addOnCompleteListener(OnCompleteListener { task ->
            if (!task.isSuccessful) {
                Log.w(TAG, "getInstanceId failed", task.exception)
                return@OnCompleteListener
            }

            // Get new Instance ID token
            val token = task.result?.token

            // Log and toast
            val msg = getString(R.string.msg_token_fmt, token)
            Log.d(TAG, msg)
            Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
        })

Swift

Messaging.messaging().token { token, error in
  if let error = error {
    print("Error fetching remote FCM registration token: \(error)")
  } else if let token = token {
    print("Remote instance ID token: \(token)")
    self.remoteFCMTokenMessage.text = "Remote FCM registration token: \(token)"
  }
}

วัตถุประสงค์-C

[[FIRMessaging messaging] tokenWithCompletion:^(NSString * _Nullable token, NSError * _Nullable error) {
   if (error != nil) {
     NSLog(@"Error fetching the remote FCM registration token: %@", error);
   } else {
     NSLog(@"Remote FCM registration token: %@", token);
     NSString* message =
       [NSString stringWithFormat:@"FCM registration token: %@", token];
     self.remoteFCMTokenMessage.text = message;
   }
 }];

หลังจาก

Java

FirebaseMessaging.getInstance().getToken()
    .addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
          if (!task.isSuccessful()) {
            Log.w(TAG, "Fetching FCM registration token failed", task.getException());
            return;
          }

          // Get new FCM registration token
          String token = task.getResult();

          // Log and toast
          String msg = getString(R.string.msg_token_fmt, token);
          Log.d(TAG, msg);
          Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
    });

คอตลิน+KTX

FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w(TAG, "Fetching FCM registration token failed", task.exception)
        return@OnCompleteListener
    }

    // Get new FCM registration token
    val token = task.result

    // Log and toast
    val msg = getString(R.string.msg_token_fmt, token)
    Log.d(TAG, msg)
    Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
})

Swift

Messaging.messaging().token { token, error in
  if let error = error {
    print("Error fetching FCM registration token: \(error)")
  } else if let token = token {
    print("FCM registration token: \(token)")
    self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
  }
}

วัตถุประสงค์-C

[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) {
  if (error != nil) {
    NSLog(@"Error getting FCM registration token: %@", error);
  } else {
    NSLog(@"FCM registration token: %@", token);
    self.fcmRegTokenMessage.text = token;
  }
}];