Memigrasikan Aplikasi iOS dari Digits ke Firebase

Jika Anda menggunakan Digits untuk membuat pengguna login menggunakan nomor telepon, Anda harus memigrasikan aplikasi ke Firebase Authentication. Semua pengembangan fitur login dengan nomor telepon di masa mendatang akan berlangsung di Firebase, dan Digits akan ditutup pada tanggal 30 September 2017.

Dengan mengikuti petunjuk di halaman ini, Anda dapat memigrasikan aplikasi dari Digits ke Firebase, tanpa mengganggu pengguna Digits Anda saat ini.

Ringkasan

Untuk memigrasikan aplikasi Anda dari Digits ke Firebase Authentication, selesaikan langkah-langkah berikut:

  1. Memigrasikan akun pengguna Digits ke Firebase
  2. Mengganti Digits SDK dengan Firebase SDK
  3. Memigrasikan sesi Digits aktif ke Firebase

Langkah pertama dapat segera diselesaikan tanpa memengaruhi aplikasi atau pengguna yang ada; langkah-langkah berikutnya harus diselesaikan secara bersamaan.

Memigrasikan akun pengguna Digits ke Firebase

Pertama, migrasikan akun pengguna Digits Anda ke Firebase seperti dijelaskan dalam dokumen developer Fabric.

Setelah menyelesaikan langkah migrasi akun, tunggu beberapa jam sampai akun pengguna Digits selesai dipindahkan ke project Firebase Anda. Setelah migrasi selesai, Anda akan memiliki project Firebase yang berisi semua akun pengguna Digits. Selain itu, setiap akun Digits yang dibuat setelah mengaktifkan migrasi akan dimigrasikan ke Firebase secara otomatis.

Mengganti Digits SDK dengan Firebase SDK

Selanjutnya, di aplikasi Anda, ganti panggilan ke Digits SDK dengan panggilan ke Firebase SDK.

Jika Anda menggunakan tombol login Digits yang telah dikonfigurasi sebelumnya, DGTAuthenticateButton, Anda dapat beralih ke Firebase dengan melakukan salah satu hal berikut:

  • Instal FirebaseUI dan ganti tampilan induk DGTAuthenticateButton dengan authViewController dari FirebaseUI.
  • Siapkan Firebase SDK untuk menggunakan login nomor telepon. Lalu, ganti DGTAuthenticateButton dengan UIButton. Ketika pengguna menekan UIButton, panggil verifyPhoneNumber:completion:.

Jika Anda menggunakan tombol kustom yang memanggil metode authenticateWithCompletion: Digits SDK, siapkan Firebase SDK agar menggunakan login dengan nomor telepon. Lalu, ganti panggilan ke authenticateWithCompletion: dengan metode verifyPhoneNumber:completion: Firebase SDK.

Setelah Anda mengganti Digits dengan Firebase, hapus Digits SDK dari Podfile Anda dan konfigurasi build.

Memigrasikan sesi Digits aktif ke Firebase

Terakhir, migrasikan setiap sesi pengguna aktif dari Digits ke Firebase sehingga pengguna tidak perlu login lagi setelah Anda menerapkan aplikasi yang telah diupdate.

Untuk memigrasikan sesi Digits ke sesi Firebase, gunakan Digits Migration Helper SDK untuk membuat token autentikasi Firebase dari sesi Digits yang aktif. Lalu, gunakan token tersebut untuk login dengan Firebase. Terakhir, setelah berhasil login menggunakan Firebase, hapus sesi Digits.

  1. Tambahkan Digits Migration Helper SDK ke Podfile Anda:
    pod 'DigitsMigrationHelper'
    Lalu, jalankan perintah pod install.
  2. Ketika aplikasi Anda dimuat, cari sesi Digits yang aktif, dan jika ada, ubahlah menjadi sesi Firebase. Lalu, hapus sesi Digits dengan clearLegacyAuth:. Misalnya:

    Swift

    let migrator = DigitsMigrator.init(digitsAppConsumerKey: key as! String, withDigitsAppConsumerSecret: secret as! String)
    
    migrator.getLegacyAuth { (customSignInToken, session) in
      if let customSignInToken = customSignInToken {
        print("Legacy digits session detected: token=\(customSignInToken), session=\(DigitsSession.describe(session))")
    
        Auth.auth().signIn(withCustomToken: customSignInToken) { (user, error) in
          if let error = error {
            print("signInWithCustomToken, user=\(String(describing: user)), error=\(error)")
            return
          }
    
          migrator.clearLegacyAuth { (success, error) in
            print("clearLegacyAuth, success=\(success), error=\(error?.localizedDescription ?? "")")
          }
        }
      }
    }
    

    Objective-C

    FIRDigitsMigrator *migrator = [[FIRDigitsMigrator alloc] initWithDigitsAppConsumerKey:key
                                                              withDigitsAppConsumerSecret:secret];
    
    [migrator getLegacyAuth:^(NSString *customSignInToken, FIRDigitsSession *session){
      if (customSignInToken) {
        NSLog(@"Legacy digits session detected: token=%@, session=%@", customSignInToken, [FIRDigitsSession describe:session]);
    
        [[FIRAuth auth] signInWithCustomToken:customSignInToken
                                   completion:^(FIRUser * _Nullable user, NSError * _Nullable error) {
          NSLog(@"signInWithCustomToken, user=%@, error=%@", user, error);
          if (!error) {
            NSString *msg = [NSString stringWithFormat:@"Converted to firebase user with id as %@", user.uid];
    
            [migrator clearLegacyAuth:^(BOOL success, NSError * _Nullable error){
              NSLog(@"clearLegacyAuth, success=%d, error=%@", success, error);
            }];
          }
        }];
      } else {
        NSLog(@"No legacy digits session detected");
        // ...
      }
    }];
    

    Anda dapat melakukan konversi ini di mana pun yang sesuai untuk aplikasi Anda; biasanya ada dalam AppDelegate.

    Jika getLegacyAuth: tidak menghasilkan token khusus, berarti pengguna tidak login dengan Digits, dan Anda bisa terus login dengan Firebase.

  3. Opsional: Catat bahwa sesi Digits telah dimigrasikan dan, tergantung kondisi, lewati langkah sebelumnya jika sudah diselesaikan.

Kirim masukan tentang...

Butuh bantuan? Kunjungi halaman dukungan kami.