Saya telah mencari di mana-mana, dan tidak ada tempat yang memberi saya jawaban yang memuaskan; bagaimana cara saya mengambil data dari Firebase Database saat saya menginginkannya? Saya tidak ingin menyinkronkan data, saya hanya ingin mendapatkan data ketika saya memanggilnya. Berbagai upaya menggunakan sekali() telah gagal sepenuhnya, tidak membuat saya dekat sama sekali. Apakah mungkin atau apakah Firebase tidak dirancang untuk apa yang saya coba lakukan?

EDIT: Contoh minimal dari apa yang ingin saya lakukan:

let ref = firebase.database().ref("location1");
let intendedValue = "Data not Gathered";
ref.once("value").then( function(snapshot) {
  intendedValue = snapshot.val();
});
console.log(intendedValue);

Di mana database firebase saya memiliki struktur:

projectFolder:
    location1:
        datapoint1: "dataValue1";

Jadi Anda akan berpikir ini akan mencatat "dataValue1", tetapi sebaliknya mencatat "Data tidak Dikumpulkan" seolah-olah ref.once() bahkan tidak pernah berjalan.

0
Vedvart1 9 Agustus 2017, 01:28

2 jawaban

Jawaban Terbaik

Sejak panggilan ke

ref.once("value").then( function(snapshot) { intendedValue = snapshot.val(); });

Pada dasarnya adalah panggilan balik, jadi saat Anda mencatat output, baris intendedValue = snapshot.val(); bahkan belum dijalankan.

Anda dapat mencoba ini

 ref.once("value").then( function(snapshot) {
  intendedValue = snapshot.val();
  console.log(intendedValue);
});
0
Kim G Pham 9 Agustus 2017, 07:51
function fire_base_db(){ 

           var ref = firebase.database().ref();
       ref.on("value", function(snapshot) {
console.log(snapshot.val());

}, function (error) {
console.log("Error: " + error.code);
     });}

Snapshot.val() berisi nilai database Anda, Anda dapat menyimpan nilai snapshot.val() dalam variabel dan mengirimkannya ke fungsi lain

-1
Akash 29 Desember 2018, 17:22