我遇到有关Firebase数据库的问题(JavaScript和离子新手)。我有一个代码来显示用户名:
.controller('accountController',['$scope', '$firebaseArray', 'CONFIG', '$document', '$state', function($scope, $firebaseArray, CONFIG, $document, $state) {
var userId = '-KcsNqRpO70spcMIPaKg';
return firebase.database().ref('/accounts/' + userId).once('value').then(function(snapshot) {
var displayName = snapshot.val().name;
$scope.$apply(function() {
$scope.displayName = displayName;
});
console.log(displayName);
// ...
});
}])
当我直接使用-KcsNqRpO70spcMIPaKg
时,这可以正常工作,但我希望我的代码只需将登录用户与数据库中的帐户匹配即可直接获取此字符串。
我尝试使用var userId = firebase.auth().currentUser.uid;
,但它没有获取-KcsN...
,而是从身份验证中获取实际的uid。
我迷路了。我不明白如何抓住它。有什么想法吗?
答案 0 :(得分:0)
好吧,经过几个小时的搜索,我希望我能像这样帮助一个像我一样的新手,答案是实际使用" Set"而不是推送并将Firebase创建的随机密钥重命名为用户的UID:
firebase.database().ref().child('/accounts/' + user.uid).set({
name: userSignup.displayname,
email: userSignup.cusername,
password: userSignup.cpassword,
description: "No description for this user",
facebook: "",
twitter: "",
}).then(function() {
// Update successful.
$state.go("login");
}, function(error) {
// An error happened.
console.log(error);
});