首页 文章

Vue,firebase数据库返回空数组

提问于
浏览
0

我试图从firebase数据库中检索数据 .

我可以连接到firebase auth并检查 currentUser 数据,没关系 .
但我无法从firebase数据库中检索数据,它只返回空数组 .

firebase版本= 5.0.4
vue版本= 2.5.16

The database structure

users/     
--------uId/        
--------------name    
--------------email

Vue Js folder structure

App.vue    
firebase.js    
main.js     
components /     
------------ Home.vue

firebase.js

var firebase = require('firebase');
require("firebase/auth");     
require("firebase/database");

var config = {
    apiKey: "...",
    authDomain: "...",
    databaseURL: "...",
    projectId: "...",
    storageBucket: "...",
    messagingSenderId: "..."
};
firebase.initializeApp(config)
export const auth = firebase.auth();
export const db = firebase.database()

Home.vue

<script>
import {db} from './../firebase';
import {auth} from './../firebase';
var usersRef = db.ref('users');

export default {
    name: "Home",
    components: {
        add_new
    },
    data(){
        return {}
    },
    mounted: function(){
        console.log(usersRef);
        var userId = auth.currentUser.uid;
        return db.ref('/users/' + userId).once('value').then(function(snapshot) {
            snapshot.forEach(function (childData) {
                console.log(childData.val())
            })
        })
    }
}
</script>

在这里,Vue应用程序正常工作,
只有firebase.database( usersRef )返回空数组 .

这是 console.log(usersRef) 结果的屏幕截图
https://i.stack.imgur.com/NH7gh.png

1 回答

  • 1

    首先,而不是使用多个import语句,为什么不

    import {auth, db} from './../firebase';
    

    并尝试改变

    snapshot.forEach(function (childData) {
       console.log(childData.val())
    })
    

    snapshot.val()

    var userId = auth.currentUser.uid;
    return db.ref('/users/' + userId).once('value').then(function(snapshot) {
       console.log(snapshot.val());
    });
    

相关问题