首页 > 解决方案 > 如何将 Firebase 与 Nativescript-Vue 结合使用?

问题描述

自 11 月以来,我一直在尝试实现一个简单的 Firebase 提取。在这一点上,我希望我刚刚创建了一个新的 Rails api;它会更快。但每个人都坚持认为 Firebase 非常简单。

在 app.js 中,

import firebase from 'nativescript-plugin-firebase';

那部分似乎还可以。在那之后,说明到处都是。该插件的自述文件建议进行初始化:

firebase.init({
  // Optionally pass in properties for database, authentication and cloud messaging,
  // see their respective docs.
}).then(
    function () {
      console.log("firebase.init done");
    },
    function (error) {
      console.log("firebase.init error: " + error);
    }
);

其他几个人坚持认为初始化代码是不必要的。它确实运行没有错误,但他之后给出的代码什么也没产生。还,

const db = firebase.firestore;
const UserStatusCollection = db.collection("UserStatus"); 
UserStatusCollection.get();

产生一个空对象 {}。

这是我的 Firebase 收藏: 这是我的 Firebase 收藏。

如果我将 firebase 调用包装在 async/await 中(并且没有人将其显示为如此复杂),

async function getFireStoreData() {
  try {
    let result = await this.UserStatusCollection.get();
    console.log(result);
    return result;
  } 
  catch (error) {
    console.error(
      "UserStatusCollection.get()" + error
    );
  }
}

并称之为

let temp2 = getFireStoreData();
console.log("temp2:" + temp2);

我所得到的只是一个对象承诺。

正如我所说,我希望我刚刚构建了一个新的 Rails API,并从 11 月开始过上简单得多的生活。

标签: firebasevue.jsgoogle-cloud-firestorenativescriptnativescript-vue

解决方案


您的getFireStoreData方法是异步的,您没有使用await它。这可能就是你得到承诺的原因。尝试await getFireStoreData()。看看这是否有效。

由于它也是一个承诺,您可以尝试使用.then.

getFireStoreData().then(data => {
  console.log(data);
})


推荐阅读