Memigrasikan Aplikasi Android 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.

Untuk menambahkan login nomor telepon menggunakan Firebase Authentication ke aplikasi Anda, lakukan salah satu hal berikut:

  • Jika Anda menginginkan solusi drop-in dengan UI, instal FirebaseUI dan ganti Aktivitas yang menampilkan DigitsAuthButton dengan Aktivitas AuthUI dari FirebaseUI. Misalnya:
    startActivityForResult(
        AuthUI.getInstance()
            .createSignInIntentBuilder()
            .setProviders(Arrays.asList(
                new AuthUI.IdpConfig.Builder(AuthUI.PHONE_VERIFICATION_PROVIDER).build(),
                // Other providers you want to support
                // ...
            ))
            .build(),
        RC_SIGN_IN);
    
    Ini adalah cara termudah untuk menambahkan Firebase Authentication ke aplikasi Anda.
  • Jika Anda tidak ingin menggunakan FirebaseUI, dan lebih memilih untuk membuat UI Anda sendiri atau berintegrasi dengan UI login yang ada, siapkan Firebase SDK untuk menggunakan login nomor telepon dan buat perubahan berikut pada kode Digits Anda:

    • Pada tata letak Aktivitas Anda, ganti elemen com.digits.sdk.android.DigitsAuthButton dengan elemen Button atau ImageButton standar.
    • Ganti logika di AuthCallback dengan kode yang setara di PhoneAuthProvider.OnVerificationStateChangedCallbacks.
    • Di listener onClick tombol login ponsel Anda, ganti panggilan ke Digits.authenticate dengan panggilan ke verifyPhoneNumber, seperti dalam contoh berikut:
      PhoneAuthProvider.getInstance().verifyPhoneNumber(
          phoneNumber,        // Phone number to verify
          60,                 // Timeout duration
          TimeUnit.SECONDS,   // Unit of timeout
          mCallbacks);        // OnVerificationStateChangedCallbacks
      

Setelah mengganti Digits dengan Firebase, hapus Digits SDK dari file build.gradle Anda.

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 dependensi untuk Digits Migration Helper ke file build.gradle tingkat modul:
    compile 'com.google.firebase:firebase-auth:11.8.0'
    compile 'com.firebase:digitsmigrationhelpers:0.1.1'
    
  2. Pastikan AndroidManifest.xml berisi kunci Fabric dan Digits:
    <!--You may already have io.fabric.ApiKey entry. Continue using it -->
    <meta-data
        android:name="io.fabric.ApiKey"
        android:value="@string/FABRIC_API_KEY"
        tools:replace="android:value"/>
    <meta-data
        android:name="com.digits.sdk.android.ConsumerKey"
        android:value="@string/CONSUMER_KEY"/>
    <meta-data
        android:name="com.digits.sdk.android.ConsumerSecret"
        android:value="@string/CONSUMER_SECRET"/>
    
  3. Dalam metode onCreate Aplikasi atau Aktivitas utama Anda, cari sesi Digits yang aktif, dan jika ada, ubahlah menjadi sesi Firebase dengan memanggil AuthMigrator.migrate. Misalnya:
    AuthMigrator.getInstance().migrate().addOnSuccessListener(this,
            new OnSuccessListener() {
                @Override
                public void onSuccess(Void authResult) {
                    FirebaseUser u = FirebaseAuth.getInstance().getCurrentUser();
                    if (u != null) {
                        // Either a user was already logged in or token exchange succeeded
                        Log.d("MyApp", "Digits id preserved:" + u.getUid());
                        Log.d("MyApp", "Digits phone number preserved: " + u.getPhoneNumber());
                    } else {
                        // No tokens were found to exchange and no Firebase user logged in.
                    }
                }
            }).addOnFailureListener(this,
            new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    // Error migrating Digits token
                }
            });
    
    Jika panggilan berhasil diselesaikan, sesi Digits telah diubah ke sesi Firebase, dan sesi Digits asli telah dihapus.
  4. 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.