2017-06-12 76 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) –