如何更新angular2 firebase数据库?

时间:2017-06-12 12:52:36

标签: javascript angular firebase firebase-realtime-database angularfire

我在firebase数据库中有candidate_list表。它包含不同的参数,如名称,城市,技能等。这些参数我通过一个表单提交。 提交表单后,页面将重定向到我们要提交简历的下一页。我不知道如何使用简历名称和路径更新candidates_list。

我的.html文件位于

之下
<div class="container">
  <div class="row">
        <div class="col-md-3">
        </div>
    <div class="col-md-6">
          <div class="jumbotron">

          <h2>Complete your Profile</h2>
          <h5 style="color:royalblue;">Add your updated Resume to get notified by Recruiters</h5>
          <form>
            <label>Resume</label>
          <input id="file" name="file" type="file" #fileinput ><br>

          <button (click)="upload(fileinput)" type="button" class="btn btn-success">Submit</button>
        </form>




          </div>
    </div>
  </div>
</div>

我的.ts页面是

import { Component, OnInit,Input } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable, FirebaseObjectObservable } from 'angularfire2/database';
import * as firebase from 'firebase';
import { FirebseService } from "app/firebse.service";

@Component({
  selector: 'app-candidate-reg-complete',
  templateUrl: './candidate-reg-complete.component.html',
  styleUrls: ['./candidate-reg-complete.component.css']
})
export class CandidateRegCompleteComponent implements OnInit {
item: FirebaseObjectObservable<any>;
  constructor(private db: AngularFireDatabase,
  private firebaseService:FirebseService) { 
    this.item = db.object('candidates_list');
  }

  ngOnInit() {
  }
  upload(documents){
    debugger;
  //  let file=user.files[0];
  //   console.log(file);
  //  console.log(file.name);
  let storageRef=firebase.storage().ref();

    for(let selectedFile of[(<HTMLInputElement>document.getElementById('file')).files[0]]){

     let path='/resumes/'+selectedFile.name;
      let iRef=storageRef.child(path);
      iRef.put(selectedFile).then((snapshot)=>{

       documents.resume=selectedFile.name;
       documents.path=path;
        var Userid=localStorage.getItem('user');
        console.log(documents);
        this.db.object('/candidates_list/'+Userid).update(documents);
      localStorage.setItem('resume',documents.path);

      })
 }

}
}


var Userid=localStorage.getItem('user');

这里我的意思是在登录时获取已设置为本地存储的用户的UID。 如何解决这个问题呢。有解决方案吗请帮我。提前致谢

1 个答案:

答案 0 :(得分:0)

将简历文件上传到firebase存储请参阅此文firebase storage  如果文件上传成功,回调将返回快照对象,您将在那里获得上传的文件详细信息。   然后,您可以使用快照中的这些文件详细信息发出更新firebase数据库的请求。