引用在Firestore中创建的新文档

时间:2020-06-17 09:05:58

标签: javascript node.js google-cloud-firestore

添加新文档时,如何引用新创建的文档的data属性?

例如: https://firebase.google.com/docs/firestore/manage-data/add-data

import React, { useEffect } from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { getCurrentProfile } from '../../actions/profile';

const Dashboard = ({ getCurrentProfile, auth, profile }) => {
    useEffect(() => {
        getCurrentProfile();
    }, []);

    return <div>Dashboard</div>;
};

Dashboard.propTypes = {
    getCurrentProfile: PropTypes.func.isRequired,
    auth: PropTypes.object.isRequired,
    profile: PropTypes.object.isRequired,
};

const mapStateToProps = (state) => ({
    auth: state.auth,
    profile: state.profile,
});

export default connect(mapStateToProps, { getCurrentProfile })(Dashboard);

1 个答案:

答案 0 :(得分:0)

Ref只是指向类型firebase.firestore.DocumentReference的数据库位置的指针,该类型没有data()方法。您可以执行以下操作:

const admin = require('firebase-admin');

admin.initializeApp({
  credential: admin.credential.applicationDefault()
});

const db = admin.firestore();

let data = {
  name: 'Tokyo',
  country: 'Japan'
};

//Adding data (name: 'Tokyo', country: 'Japan')
let setDoc = db.collection('cities').add(data).then(ref => {
  console.log('Added document with ID: ', ref.id);

  // Retrieving the data from the recently created document.
  return db.collection('cities').doc(ref.id).get()
        .then(doc => {
           if (!doc.exists) {
             console.log('No such document!');
           } else {
             console.log('Document data:', doc.data());
           }
        })
       .catch(err => {
          console.log('Error getting document', err);
       });

}).catch(err => {
 console.log('Error adding the data',err);
});

您将检索Document data: { name: 'Tokyo', country: 'Japan' },它与您刚在上面添加的数据相同。