当前位置: 首页 > 知识库问答 >
问题:

如何将数据从反应表单推送到FireStore?

董阳平
2023-03-14

这是当前的代码:从'@angull/core'导入{Component,OnInit,OnDestroy};从'AngularFire2/FireStore'导入{AngularFirestore,AngularFirestoreCollection};从'AngularFire2/Database'导入{AngularFireDatabase};从'AngularFire2/Auth'导入{AngularFireAuth};从'rxjs/Observable'导入{Observable};

    import { FirestoreService } from '../../../../providers/firestore.service';

    import { Subject } from 'rxjs/Subject';
    import 'rxjs/add/operator/switchMap';
    import 'rxjs/add/observable/combineLatest';
    import * as firebase from 'firebase/app';

    import { ActivatedRoute } from '@angular/router';

    import { FormGroup, FormControl, Validators } from '@angular/forms';

    export interface Item {
    productName: '';
    productTitle: '';
    productPrice: '';
    productDescription: '';
    }

    @Component({
    selector: 'app-form',
    templateUrl: './form.component.html',
    styleUrls: ['./form.component.scss']
    })
    export class FormComponent implements OnInit {

    productId: any;
    prodId: string;
    ref: AngularFirestoreCollection<Item>;
    items: Observable<Item[]>;

    // for the form
    Item: FormGroup;
    FormGroup = this.db.col$('items');
    // end for the form

    private routeSubscribed: any;


    constructor(
        private route: ActivatedRoute,
        public db: FirestoreService,
        private afs: AngularFirestore
    ) { }

    ngOnInit() {
        this.ref = this.afs.collection('items');
        this.items = this.ref.valueChanges();
        this.items = this.db.col$('items');
        this.items = this.db.colWithIds$('items');
        this.productId = this.db.doc$(`items/${this.prodId}`);


        /// here is the form for products
        const data: Item = new Item ({
        productName: new FormControl('', {
            validators: Validators.required
        }),
        productTitle: new FormControl('', {
            validators: Validators.required
        }),
        productPrice: new FormControl('', {
            validators: Validators.required
        }),
        productDescription: new FormControl('', {
            validators: Validators.required
        })
        }, { updateOn: 'submit' } );
        // end here is the form for products
        this.afs.doc(`items/tops`).set(data);
        this.db.set(`items/tops`, data);

        }
        }

共有1个答案

景同
2023-03-14

这是我的方法:我假设您已经完成了使用angularfire2的所有设置

>

  • 创建服务(items.Service.ts)并建立连接和请求:(使用接口定义项或创建模型文件,我更喜欢模型文件)

    itemsCollection: AngularFirestoreCollection<Item>;
    items: Observable<Item>;
    collectionPath: string = "YOUR_PATH";
    
    constructor(private afs: AngularFirestore) {
        this.itemsCollection = this.afs.collection(this.collectionPath);
    }
    
    addItem(item: Item){
        this.itemsCollection.add(item);
    }
    

    使用items.component.ts文件生成表单并推送数据:

    item: Item;
    itemForm: FormGroup;
    
    constructor(private itemsService: ItemsService) { }
    
    ngOnInit(){
        this.initForm()
    }
    
    private initForm(){
        this.itemForm = new FormGroup({
            'name' : new FormControl('', Validators.required),
            'title': new FormControl('', Validators.required)
            ......
        });
    }
    
    onSubmit(){
       this.itemService.addItem(this.itemForm.value);
    }
    
    <form [formGroup]="itemForm"
          (ngSubmit)="onSubmit()">
    

  •  类似资料:
    • 我们想将图像文件作为multipart/form发送到后端,我们尝试使用html表单获取文件并将文件作为formData发送,下面是代码 后端中的错误是“嵌套异常是org.springframework.web.multipart.MultipartException:无法分析多部分servlet请求;嵌套异常是java.io.IOException:org.apache.tomcat.util.

    • 我是新来的反应本地人。我需要,如何推setState数组到新的数据?

    • 问题内容: 初学者ES问题在这里 将Spark数据框推送到Elastic Search的工作流程或步骤是什么? 通过研究,我相信我需要使用spark.newAPIHadoopFile()方法。 但是,在研究ElasticSearch文档和其他StackQ / A时,我仍然对参数需要采用的格式以及为什么使用它感到困惑 请注意,我正在使用pyspark,这是ES的新表(尚无索引),并且df是5列(2个

    • 我想使用heroku pg:push命令将本地postgresql数据库推送到heroku。命令如下所示: 。 我的应用程序的名称是。我尝试了。输出是: 我很惊讶我没有在数据库中输入任何内容。但我仍然运行heroku pg:reset DATABASE来重置我的数据库。之后,我再次尝试了heroku pg:推送mysitedb数据库——app secure-gorge-4090,但输出仍然相同。

    • 问题内容: 我是Rails和Web开发的新手。 我正在Matlab中生成一堆对象,我想将这些对象发送到我的Rails应用程序中的数据库中。谁能建议我该怎么做? 到目前为止,在Rails端,我已经为数据生成了基本的支架。我可以使用“ / myobjects / new”中的表单将对象添加到数据库中。 在Matlab端,我一直在尝试使用HTTP POST请求添加对象,如下所示: 这将失败,并将以下内容

    • 我有一个片段,它打开一个对话框fragment来获取用户输入(一个字符串和一个整数)。我该如何将这两样东西送回碎片? 这是我的对话片段: 我需要在单击按钮之后和 以下是数据需要发送到的片段: 因此,一旦用户在Dialogfragment中选择日期,它必须返回月份和年份。 然后,按钮上的文本应更改为用户指定的月份和年份。