我正在尝试从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
答案 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());
});