2017-06-12 64 views
0

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

我的.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。 如何解决这个问题呢。任何解决方案请帮帮我。在此先感谢

回答

0

上传简历文件火力存储参考本文firebase storage 如果文件上传成功,回调将返回一个快照对象,你会得到上传的文件的详细信息那里。 然后您可以请求使用快照中的这些文件详细信息更新Firebase数据库。

+0

可以请你展示如何编写这个问题的更新代码,它是上传文件storage.but我想存储名称和路径在数据库中,但它does not work.how解决这个问题吗?请帮助我任何人? – pranavyoyo

+0

您可以使用数据库引用的更新方法来更新特定键。请参阅本文:[firebase update](https://firebase.google.com/docs/database/admin/save-data) –