ADVAN Laptop AI Gen Ultra With Ai 14''ADVAN menghadirkan Laptop terbaru yang dapat memenuhi produktivitas pengguna sehari-hari. Laptop ini merupakan generasi AI Gen terbaru dengan versi Prosesor Intel Ultra. AI Gen Ultra sudah memiliki AI Integrated yang dapat membantu memaksimalkan fungsi kerja perangkat. Laptop ini dapat meunujang produktivitas sehari-hari bagi pekerja professional, pelajar, mahasiswa, gamers, UMKM, dan masih banyak lagi. Free Klik Disini ! |
Cloud Firestore adalah database terbaru dari Firebase untuk pengembangan aplikasi seluler. Database ini melanjutkan keberhasilan Realtime Database dengan model data baru yang lebih intuitif. Cloud Firestore juga memiliki fitur kueri yang lebih lengkap dan lebih cepat, serta fitur skala yang lebih mendalam dibandingkan dengan Realtime Database.
Baca artikel sebelumnya tentang Firebase dan Firestore.
Pada artikel kali ini kita akan membahas bagaimana cara membuat function connection pada bahasa GO dengan database Firestore.
untuk mengikuti tutorial ini pastikan kamu sudah mempunyai account GCP ( google cloud platform ), selanjutnya buka firebase console di linke berikut ini
link : https://console.firebase.google.com
Buat nama project anda, ikuti proses yang di persyaratkan oleh firebase
Pilih cloud firestore pada dashboard project anda, seperti gambar di bawah ini
Buat database firestore anda, setelah itu masuk menu setting > service dan buat access key untuk akses aplikasi kedalam database firebase anda.
Pilih konfigurasi SDK Admin untuk bahasa GO, kemudian download file dalam bentuk JSON. Isi file generate key-nya seperti di bawah ini:
{
"type": "service_account",
"project_id": "dfdfdf12",
"private_key_id": "dfdfkdlfkldkfldd6a2",
"private_key": "-----BEGIN PRIVATE KEY-----dkjkjgkfjgkfjgkf-----END PRIVATE KEY-----\n",
"client_email": "xxx",
"client_id": "xxx",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "xxxx"
}
Selanjutnya kita akan buat sebuah project dengan bahasa GO, dengan struktur direktory project seperti gambar dibawah ini :
Buat file .env dan buat nama variable sebagai berikut
PORT=:8091
PROJECTID=id-project-firebase-anda
JSONKEY=key.json
package configimport (
"context"
"fmt"
"gofirestore/globals"
"log"firebase "firebase.google.com/go"
"google.golang.org/api/option"
)func Connection() (context.Context, *firebase.App) {
ctx := context.Background()
opt := option.WithCredentialsFile(globals.GetEnv("JSONKEY"))
config := &firebase.Config{ProjectID: globals.GetEnv("PROJECTID")}
app, err := firebase.NewApp(ctx, config, opt)
if err != nil {
fmt.Println("error cuiiiiiiiii")
log.Fatalln(err)
}
return ctx, app
}
Buat directory product dan file handlers.go, di sini kita akan menguji function connection yang kita buat berhasil atau tidak. Perhatikan code di bawah ini
package productsimport (
"gofirestore/config"
"gofirestore/globals"
"gofirestore/models"
"log"
"net/http"
)func ProductAll(w http.ResponseWriter, r *http.Request) {
ctx, app := config.Connection()
client, err := app.Firestore(ctx)
if err != nil {
log.Fatalln(err)
}
defer client.Close()
if err != nil {
globals.RespondWithJSON(w, http.StatusBadRequest, models.Result{
Status: http.StatusBadRequest,
Message: "Database not found",
})
return
}globals.RespondWithJSON(w, http.StatusOK, models.Result{
Status: http.StatusOK,
Message: "Database found",
})
return
}
Buat folder dengan nama routes dan file dengan nama routes.go untuk melakukan routing url project kita. Perhatikan kode dibawah ini
package routesimport (
"gofirestore/products"
"log"
"net/http""github.com/alecthomas/template"
"github.com/gorilla/mux"
)func SetupRouter() *mux.Router {
router := mux.NewRouter().StrictSlash(true)
router.HandleFunc("/", getIndex)
router.Handle("/products", http.HandlerFunc(products.ProductAll)).Methods("GET")return router
}
func getIndex(w http.ResponseWriter, r *http.Request) {
t, err := template.ParseFiles("./html/index.html")
if err != nil {
log.Fatal("Error template rendering", err)
}
t.Execute(w, nil)
}
Pada file main.go, buat konfigurasi untuk mengatur port dan routing url dari project yang kita buat, perhatikan kode dibawah ini :
package mainimport (
"gofirestore/globals"
"gofirestore/routes"
"net/http"
"time"
)func main() {
r := routes.SetupRouter()
s := &http.Server{
Addr: globals.GetEnv("PORT"),
Handler: r,
ReadTimeout: 30 * time.Second,
WriteTimeout: 30 * time.Second,
MaxHeaderBytes: 1 << 20,
}
s.ListenAndServe()
}
diatas kita telah menyelesaikan step by step untuk menghubungkan koneksi database firestore dan golang. selanjutnya kita perlu melakukan testing dengan cara menjalankan aplikasi kita, dengan command sebagai berikut :
go run main.go
baca artikel lainya :
Note : jika ada pertanyaan dan saran silahkan hubungi penulis