Saya relatif baru dalam pengkodean dan saya mengalami masalah.
Saya memiliki kode ini untuk mengirim data ke firebase
app.userid = app.user.uid
var userRef = app.dataInfo.child(app.users);
var useridRef = userRef.child(app.userid);
useridRef.set({
locations: "",
theme: "",
colorScheme: "",
food: ""
});
Namun, saya terus mendapatkan kesalahan:
PERINGATAN FIREBASE: disetel ke / users / (GoogleID) gagal: izin_denied 2016-05-23 22: 52: 42.707 firebase.js: 227 Tidak tertangkap (dalam janji) Kesalahan: PERMISSION_DENIED: Izin ditolak (…)
Ketika saya mencoba untuk mencari ini, itu berbicara tentang aturan untuk Firebase, yang tampaknya dalam bahasa yang belum saya pelajari (atau itu hanya di atas kepala saya). Dapatkah seseorang menjelaskan apa yang menyebabkan masalah tersebut? Saya pikir itu karena saya memintanya untuk menyimpan email dan nama tampilan pengguna dan Anda hanya tidak diizinkan untuk melakukan ini, tetapi ketika saya mengeluarkannya, saya masih memiliki masalah yang sama. Adakah cara untuk menghindari kesalahan ini tanpa menetapkan aturan, atau apakah aturan adalah sesuatu yang dapat saya ajarkan sendiri bagaimana menulis dalam sehari, atau apakah saya baru saja keluar dari liga saya?
Terima kasih atas bantuannya!
sumber
Saya menghadapi masalah serupa dan menemukan bahwa kesalahan ini disebabkan oleh aturan yang salah yang ditetapkan untuk operasi baca / tulis untuk database waktu nyata. Secara default, google firebase saat ini memuat penyimpanan awan, bukan basis data waktu nyata. Kita perlu beralih ke waktu nyata dan menerapkan aturan yang benar.
Seperti yang bisa kita lihat, Firestore mengatakan cloud bukan database waktu nyata, setelah beralih ke database yang benar, terapkan aturan di bawah ini:
sumber
Pergi ke opsi "Database" yang Anda sebutkan.
Disalin dari sini .
sumber
Masuk ke database, di sebelah judul ada 2 pilihan:
Cloud Firestore, database Realtime
Pilih database Realtime dan buka aturan
ubah aturan menjadi benar.
Ini memecahkan masalah saya.
sumber
berhasil..!!
sumber
Oke, tapi Anda tidak ingin membuka seluruh database realtime! Anda membutuhkan sesuatu seperti ini.
atau
sumber
Solusi lain adalah benar-benar membuat atau masuk pengguna secara otomatis jika Anda sudah memiliki kredensial yang berguna. Berikut adalah cara saya melakukannya menggunakan Plain JS.
sumber