【发布时间】:2017-03-27 20:15:45
【问题描述】:
我使用 firebase 作为数据库,使用 Angular 创建后端。
当我想更新我的数据库的一个特定项目时遇到了一些问题。
我的数据库是这样的:
--mydomain
----posts
--------POST LIST1 (crazy number and letter are display)
------------author
------------imageDetails THIS IS WAHT SHOULD BE UPDATED)
------------etc
--------POST LIST2 (crazy number and letter are display)
------------author
------------imageDetails
------------etc
...
----users
--------name
--------email
--------id
我希望能够更新当前项目(帖子)的表 imageDetails
但目前当我尝试更新时它会这样做:
--mydomain
----posts
--------POST LIST1 (crazy number and letter are display)
------------author
------------imageDetails
------------etc
--------POST LIST2 (crazy number and letter are display)
------------author
------------imageDetails
------------etc
--------imageDetails(THIS IS WHERE ITS WRONG)
...
----users
--------name
--------email
--------id
我原来的代码是:
var firebaseRef = firebase.database().ref().child('posts/');
我也尝试以下方法:
var firebaseRef = firebase.database().ref('posts/' + posts.key +'/test');
没有成功,我有“未定义帖子”
完整代码如下:
app.controller('myController', ['$scope','$firebaseStorage',function($scope, $firebaseStorage) {
var ref = firebase.database().ref().child("posts");
// Create a Firebase Storage reference
var storage = firebase.storage();
var firebaseRef = firebase.database().ref('posts/' + posts.key +'/test').push().key;
var storageRef = storage.ref();
var filesRef = storageRef.child('files');
$scope.uploadFile = function(file) {
console.log("Let's upload a file!");
console.log($scope.file);
var storageRef = firebase.storage().ref().child(file.name).put(file);
storageRef.on('state_changed', function(snapshot) {
var progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
}, function() {
//handle error
}, function() {
//url of storage file
var downloadURL = storageRef .snapshot.downloadURL;
firebaseRef.update({'url':downloadURL})
// firebaseRef.update().ref().child('posts').child({'oui':downloadURL});
// const dbref = firebase.database().ref().child('posts').child(uid);
console.log(downloadURL);
});
};
}]);
我怎样才能做到这一点?我一直在尝试使用推送,但它并没有改变任何东西。
感谢您的帮助。
【问题讨论】:
-
您似乎正在使用 Firebase 存储服务来更新您的 Firebase 数据库中的值。那是行不通的。我建议您从文档的顶部开始(在其他功能之前先介绍数据库):github.com/firebase/angularfire/blob/master/docs/guide/…
-
不要使用push,push会创建唯一的id。但是你的问题是你想更新一些id字段。但是我的问题是如果你有多个firebase id你怎么知道你将更新哪个id
-
我正在尝试更新当前的帖子 ID 是的,比如 var firebaseRef = firebase.database().ref().child('posts' + currentpostid );但我不知道怎么做
-
弗兰克,流程是什么?我想不通
标签: angularjs firebase firebase-realtime-database angularfire