Vue,firebase数据库返回空数组

时间:2018-06-10 10:10:55

标签: javascript firebase firebase-realtime-database vuejs2

我正在尝试从firebase数据库中检索数据。

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

firebase版本= 5.0.4
vue version = 2.5.16

数据库结构

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

Vue Js文件夹结构

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 个答案:

答案 0 :(得分: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());
});