【问题标题】:Why I cant query to Firebase eventhough the query is correct?为什么即使查询正确,我也无法查询 Firebase?
【发布时间】:2020-04-11 20:00:49
【问题描述】:

我昨天发布了关于我遇到的同样问题,但我无法让它工作我真的比以往任何时候都更需要帮助!

我会把整个函数贴在下面:

const db = firebase.firestore; //initializing database
//setting state here, removed for brevity
_checkForUniqueDevice() {
    const { currentUser } = firebase.auth();
    this.state.currentUser = currentUser;

    const document = db().collection('RriNshpiUsers').doc('EzGNfNl63LQvjdauFWosG08Ishj2');
    const ref = document.collection('private').doc('ApbckRkRITeh0WQIiQiz');
    const publicDoc = document.collection('public').doc('aRzHZ8zro7XFpkJMg1TH');

    const updateFunction = async transaction => {
        const [active] = await Promise.all([
            transaction.get(ref),
        ]);
        const { location } = this.state;
        let timestamp = moment(location.timestamp).format("MM-DD-YYYY h:mm:ss")

        const user_active = active.data().act;
        const device_id = active.data().devID;

        if (user_active === 0 && device_id === '') {
            transaction.update(ref, {
                devID: this.state.deviceId,
                act: 1,
                time: timestamp,
                lat: location.latitude,
                course: location.course,
                speed: location.speed,
                alt: location.altitude,
                long: location.longitude,
                acc: location.accuracy,
                altAcc: location.altitudeAccuracy,
                courseAcc: location.courseAccuracy,
                speedAcc: location.speedAccuracy
            });
                transaction.update(publicDoc, {
                addCoord: location
            });
        }
    };
     db().runTransaction(updateFunction)
        .then(result => {
          //never returns something
        })
        .catch(error => {
            //never catches any errors
        });
}

我正在使用我在其他地方使用过的这个功能,它工作得非常好,但我不明白为什么它在这里静默失败?

当我调用此函数时,它执行构建查询的第一行,然后转到db().runTransaction(updateFunction) 这一行并尝试执行,但没有捕获任何错误,也没有在回调中返回任何内容 - 我已经放.catch.then 回调中的断点,但永远不会停在那里。

如果有错误,不是应该捕获它吗?或者如果它成功了是不是应该在回调中返回一些东西?

知道这里发生了什么吗?

编辑:截图

【问题讨论】:

    标签: javascript firebase react-native google-cloud-firestore


    【解决方案1】:

    我的代码中的主要问题是在事务操作中设置状态,而 document 明确指出不应该这样做。

    【讨论】:

      猜你喜欢
      • 2020-01-24
      • 2011-11-22
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      • 1970-01-01
      相关资源
      最近更新 更多