/ / Промяна на URL адреса на изображението за съхранение при подаване на infirebase с ъглова / angularfire - angularjs, firebase, firebase-база данни, angularfire, firebase-storage

Промяна на URL адреса на изображението за съхранение при подаване на infirebase с ъглово / ъглово огъване - angularjs, firebase, firebase-база данни, angularfire, firebase-storage

Аз най-накрая успях да има функцията ми за качване на хранилища, която да работи перфектно в моята запасна база за съхранение на данни, работеща с ъглови и ъглови огън. Аз започвам да се развивам с Angular.

за това използвам тази форма:

<form ng-submit="uploadFile(file)">
<input type="file" accept="txt" file-model="file" class="form-control">
<button type="submit" class="btn btn-primary">Upload File</button>

и че js:

app.controller("myController", ["$scope","$firebaseStorage",function($scope,     $firebaseStorage) {

// Create a Firebase Storage reference
var storage = firebase.storage();
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;
console.log(downloadURL);

});
};

}]);

Аз съм добавил

console.log(downloadURL);

в моя DownloadUrl Var, и мога да видя URL адреса на файла, който се качва добре в конзолата.

Въпреки това, бих искал URL адресът да бъде актуализиран и в базата данни.

Пример:

Добавям под моя формуляр вход, където пътят за файла за съхранение се предава от базата данни (работи добре):

<form ng-submit="uploadFile(file)">
<input type="file" accept="txt" file-model="file" class="form-control">
<button type="submit" class="btn btn-primary">Upload File</button>
<input ng-model="group.imageDetails" ng-change="groups.$save(group)" />

това се получава от това:

    app.controller("VideosCtrl", function($scope, $firebaseObject) {
var ref = firebase.database().ref().child("posts");

$scope.groups = $firebaseObject(ref);

// download the data into a local object
var syncObject = $firebaseObject(ref);
// synchronize the object with a three-way data binding
// click on `index.html` above to see it used in the DOM!
syncObject.$bindTo($scope, "data");
});

Какво е id, когато изпращам файла за качване, за да актуализирам вход под формуляра си с URL адреса за изтегляне на този нов файл, който току-що е качил.

Как може да се постигне това?

Благодаря много за вашата помощ на всички!

--- РЕДАКТИРАНЕ:

Добре с кода по-долу:

app.controller("myController", ["$scope","$firebaseStorage",function($scope,     $firebaseStorage) {

// Create a Firebase Storage reference
var storage = firebase.storage();
var firebaseRef = firebase.database().ref().child("posts")
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({"test":downloadURL})

console.log(downloadURL);

});
};

}]);

тя се създава, но в погрешната таблица на моята база данни:

    --mydomain
----posts
--------POST LIST1
------------author
------------imageDetails ( THIS is where it should update the url)
--------CURRENT URL ( This is wehre it is save at the moment)
----users
--------name
--------email
--------id

така че аз се опитах да замени

firebaseRef.update({"test":downloadURL})

от

firebaseRef.update().ref().child("posts").child({"test":downloadURL});

но няма късмет ... има ли някой решение?

Благодаря @

Отговори:

0 за отговор № 1
app.controller("myController", ["$scope","$firebaseStorage",function($scope,     $firebaseStorage) {

// Create a Firebase Storage reference
var storage = firebase.storage();
var firebaseRef = firebase.database().ref().child("posts")
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;
// $scope.group.imageDetails = downloadURL;
firebaseRef.update({"url":downloadURL})
console.log(downloadURL);

});
};

}]);

Тя ще качи URL в базата данни мнения

app.controller("VideosCtrl", function($scope, $firebaseObject) {
var ref = firebase.database().ref().child("posts");

ref.on("value",function(snapshot){
console.log(snapshot.val().url);
$scope.groups = snapshot.val().url;
});
});

HTML:

 <form ng-submit="uploadFile(file)">
<input type="file" accept="txt" file-model="file" class="form-control">
<button type="submit" class="btn btn-primary">Upload File</button>
<input ng-model="groups"/>