Firebase-myFirebase.child().oce()返回未定义的值

Firebase - myFirebase.child().once() returns undefined

本文关键字:未定义 oce child Firebase-myFirebase 返回      更新时间:2023-09-26


我正在使用Firebase创建一个web应用程序。我可以在我的Firebase中设置好值,但如果我试图读取它们,我会得到未定义的值。这是我的代码:

            var str = document.URL;
            var padId = str.slice(55, 65);
            alert(padId);
            var myFirebase = new Firebase("https://collab-coding-privacy.firebaseio.com/" + padId);
            var isPrivate;
            var owner = "";
            var pemial = "";
            myFirebase.child("private").on('value', function(snapshot) {
                if (snapshot.val() != undefined) {
                    isPrivate = true;
                }
            });
            alert(isPrivate);
            myFirebase.child("pemial").on('value', function(snapshot) {
                if (snapshot.val() != null) {
                    pemail = snapshot.val();
                }
            });
            alert(pemail);

            myFirebase.child("owner").on('value', function(snapshot) {
                if (snapshot.val() != null) {
                    owner = snapshot.val();
                }
            });
            alert(owner);

当我加载页面时,它首先会提醒padId,我会检查它并将其存在于我的firebase中。然后它会提醒pemail、owner和isPrivate,它们都是未定义的。

我做错了什么?有什么建议吗?提前感谢大家。

您正在执行异步操作,然后立即尝试读取同步作用域中的返回值。该值未定义,因为尚未调用对on("value"(的回调。将警报移动到回调中,您将看到实际值。