【问题标题】:update Current Item Database in Firebase with Angular / Angularfire使用 Angular / Angularfire 更新 Firebase 中的当前项目数据库
【发布时间】: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


【解决方案1】:
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);


        });
    };

 }]);

【讨论】:

  • 嗯,在有一个帖子没有定义:/
  • 检查一次@tibewww
  • 还是没有运气 :( :( :(
猜你喜欢
  • 2014-12-24
  • 2019-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多