S2S Drone Kamera Jarak Jauh Fotografi UdaraMetode penerimaan transmisi gambar: 2.4 WIFI. Lensa: lensa elektronik anti guncangan dengan stabilisator otomatis. Baterai kendali jarak jauh: AA * 3 untuk dibeli secara terpisah. Kapasitas baterai litium pintar: 3.7V 2000mAh. Jarak kontrol (bebas gangguan dan tidak ada oklusi):100M. Waktu penerbangan: sekitar 25 menit 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