首页 > 解决方案 > firebase javascript没有从快照内部传递值

问题描述

我正在尝试从 firebase 中的特定子项中获取值,并且在我看来,代码没有任何问题。

当我在里面创建一个警报reciverbitconvalue menu时它可以工作,但是当我通过另一个字符串传递它并对那个字符串发出警报时它不起作用,它说它是undefined.

例如,请检查一下reciverbitconvalue,您会意识到我传递snapshoot给了另一个名为的字符串passbitcoin,然后我将它传递给了警报,当我运行它时,它说它是undefined.

var senderbitcoinvalue;
var formbitcoinamount;
var formbitcoinuid;
var subtractbitcoin;
var passbitcoin;
var passbrecevier;
var divisionbitcoin;

document.getElementById("sendbitcoin").addEventListener("click", function() {
  //form values
  formbitcoinamount = document.getElementById("bitcoinamount").value;
  formbitcoinuid = document.getElementById("bitcoinuid").value;

  var senderbitcoinvalue = firebase.database().ref().child("users").child(uid).child("bitcoin");
  senderbitcoinvalue.on('value', function(databasesnapshot) {

    //pass bitcoin
    passbitcoin = databasesnapshot.val();

  });

  var reciverbitconvalue = firebase.database().ref().child("users").child(formbitcoinuid).child("bitcoin");
  reciverbitconvalue.on('value', function(databasesnapshot122) {

    //pass bitcoin
    passbrecevier = databasesnapshot122.val();

  });

  if (passbitcoin > formbitcoinamount) {
    subtractbitcoin = passbitcoin - formbitcoinamount;

    // put subtracted amount on sender value
    var senderbitcoinsub = firebase.database().ref();
    senderbitcoinsub.child("users").child(uid).child("bitcoin").set(subtractbitcoin);

    //reciver value
    alert(passbrecevier);
    alert("Your amount successfully been transferred");
    return;
  } else {
    alert("You dont have enough Bitcoins");
  }
});

标签: javascriptfirebasefirebase-realtime-database

解决方案


推荐阅读