我正在开发电子应用程序并使用Firebase数据库。我逐个用户创建数据库,但为每个人保存数据。我想将数据也保存为用户ID。
我可以在其用户ID下创建一个用户,但无法在其用户ID下写入其数据。
app.controller('loginCtrl', function($scope,$location){
$scope.signup = function(){
auth.createUserWithEmailAndPassword($scope.mail,$scope.parola).then(sonuc=>{
console.log(sonuc.user);
return db.collection('users').doc(sonuc.user.uid).set({
inputQ: $scope.inputQ
}).then( ()=> {
console.log('deneme basarili');
}).catch(err => {
console.log(err.message);
})
})
}
$scope.login = function(){
auth.signInWithEmailAndPassword($scope.mail,$scope.parola).then(sonuc=> {
$location.path('/dashboard')
})
}
});
这部分成功地在其用户ID下创建了一个用户。
app.controller('dashboardCtrl', function($scope){
$scope.add = function() {
db.collection('users').doc(user.uid).add({
baslik: $scope.baslik,
icerik: $scope.icerik
}).then( ()=> {
console.log('ekleme basarili');
}).catch(err=>{
console.log(err.message);
})
}
该部分无法使用其用户ID创建数据。
错误是未定义用户。
答案 0 :(得分:0)
app.controller('dashboardCtrl', function($scope){
$scope.add = function() {
db.collection('users').doc(user.uid).set({
baslik: $scope.baslik,
icerik: $scope.icerik
}).then( ()=> {
console.log('ekleme basarili');
}).catch(err=>{
console.log(err.message);
})
}
尝试使用“集合”而不是“添加”,“添加”通常保留用于添加到集合中,在集合中为您创建记录标识符,而无需您提供它。
答案 1 :(得分:0)
您应该将.add
更改为.set
,但也要确保包含merge: true
以防止覆盖文档(例如,如果有当前文档,它将对其进行更新,如果存在不会创建一个文档。)
app.controller('dashboardCtrl', function($scope){
$scope.add = function() {
db.collection('users').doc(user.uid).set(
{
.
.
.
},
{ merge: true }
).then( ()=> {
}).catch(err=>{
})
}