使用 Angular / Angularfire 更新 Firebase 中的当前项目数据库
update Current Item Database in Firebase with Angular / Angularfire
我使用 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
我希望能够更新当前项目(帖子)的 table 图片详细信息
但目前它在我尝试更新时这样做:
--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');
没有成功,我有 'posts is not defined'
完整代码如下:
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);
});
};
}]);
我怎样才能做到这一点?我一直在尝试使用推送,但它没有任何改变。
感谢您的帮助。
app.controller('myController', ['$scope','$firebaseStorage',function($scope, $firebaseStorage) {
var ref = firebase.database.ref("posts");
// Create a Firebase Storage reference
var storage = firebase.storage();
var storageRef = storage.ref();
var filesRef = storageRef.child('files');
$scope.uploadFile = function(file,group) {
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() {
var firebaseRef = firebase.database().ref().child('posts');
var downloadURL = storageRef.snapshot.downloadURL;
group.imageDetails = downloadURL;
firebaseRef.child(group.title).update(group);
console.log(downloadURL);
});
};
}]);
我使用 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
我希望能够更新当前项目(帖子)的 table 图片详细信息
但目前它在我尝试更新时这样做:
--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');
没有成功,我有 'posts is not defined'
完整代码如下:
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);
});
};
}]);
我怎样才能做到这一点?我一直在尝试使用推送,但它没有任何改变。
感谢您的帮助。
app.controller('myController', ['$scope','$firebaseStorage',function($scope, $firebaseStorage) {
var ref = firebase.database.ref("posts");
// Create a Firebase Storage reference
var storage = firebase.storage();
var storageRef = storage.ref();
var filesRef = storageRef.child('files');
$scope.uploadFile = function(file,group) {
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() {
var firebaseRef = firebase.database().ref().child('posts');
var downloadURL = storageRef.snapshot.downloadURL;
group.imageDetails = downloadURL;
firebaseRef.child(group.title).update(group);
console.log(downloadURL);
});
};
}]);