Migrasi ke Go Admin SDK v4

Sejak versi 4.0.0, Firebase Admin SDK untuk Go telah disertakan dalam modul Go. Selain itu, ada perubahan yang dapat menyebabkan gangguan dalam penanganan error dan semantik.

Perubahan penginstalan

Sesuai dengan praktik terbaik modul, versi utama SDK telah ditambahkan ke nama paket. Perubahan ini menyebabkan pembaruan nama paket berikut:

  • firebase.google.com/go → firebase.google.com/go/v4
  • firebase.google.com/go/auth → firebase.google.com/go/v4/auth
  • firebase.google.com/go/db → firebase.google.com/go/v4/db
  • firebase.google.com/go/iid → firebase.google.com/go/v4/iid
  • firebase.google.com/go/messaging → firebase.google.com/go/v4/messaging

Developer sudah menggunakan modul

Gunakan nama paket berversi untuk menginstal versi terbaru SDK.

# Install the latest version:
go install firebase.google.com/go/v4@latest

# Or install a specific version:
go install firebase.google.com/go/v4@4.13.0

Nama paket yang sama yang mencantumkan versi harus digunakan dalam kode sumber saat mengimpor SDK.

package helloworld

import (
        "firebase.google.com/go/v4"
        "firebase.google.com/go/v4/auth"
        "firebase.google.com/go/v4/messaging"
)

Untuk menginstal versi sebelumnya, gunakan nama paket lama (tanpa versi) dengan penentu versi yang eksplisit.

# Notice the @v3 suffix.
# This instructs Go tools to fetch the latest v3.x release of the SDK.
go get firebase.google.com/go@v3

Developer saat ini tidak menggunakan modul

Developer yang belum memilih modul masih dapat menginstal SDK menggunakan nama paket tanpa versi.

go get firebase.google.com/go

Namun, perlu diperhatikan bahwa tindakan ini mengambil versi terbaru SDK (v4 atau yang lebih baru) yang berisi perubahan API lain yang dapat menyebabkan gangguan.

Perubahan penanganan error umum

SDK v4 memperkenalkan paket errorutils baru yang menyediakan fungsi untuk menangani kondisi error tingkat platform. Jika error disebabkan oleh error layanan backend, Anda dapat mengakses respons error asli dengan memanggil fungsi baru errorutils.HTTPResponse(). Anda dapat menggunakan fungsi di dalam paket ini dengan error yang ditampilkan oleh API apa pun di SDK.

Perubahan Authentication API

  • Menambahkan fungsi penanganan error baru yang akan digunakan bersama dengan VerifyIDToken() dan VerifySessionCookie() API:
    • IsIDTokenInvalid()
    • IsIDTokenExpired()
    • IsSessionCookieInvalid()
    • IsSessionCookieExpired()
    • IsCertificateFetchFailed()
  • Tidak digunakan lagi:
    • IsProjectNotFound()
    • IsUnknown()
    • IsInsufficientPermission()
    • IsInvalidEmail()

Perubahan FCM API

  • Mengganti nama jenis messaging.WebpushFCMOptions menjadi messaging.WebpushFcmOptions.
  • Ditambahkan:
    • IsThirdPartyAuthError()
    • IsQuotaExceeded()
    • IsSenderIDMismatch()
    • IsUnregistered()
    • IsUnavailable()
  • Tidak digunakan lagi:
    • IsInvalidAPNSCredentials()
    • IsMessageRateExceeded()
    • IsMismatchedCredential()
    • IsRegistrationTokenNotRegistered()
    • IsServerUnavailable()
    • IsTooManyTopics()
    • IsUnknown()

Perubahan IID API

Semua fungsi penanganan error yang saat ini tersedia dalam paket iid kini sudah tidak digunakan lagi. Sebagai gantinya, gunakan fungsi penanganan error yang sesuai yang disediakan dalam paket errorutils.