我想在我的网络应用程序中处理在线和离线状态。以便用户可以看到谁在线、谁不在线。
我发现这个很棒的教程解释得很好,但我被困住了。
我认为 存在问题cloud-functions,因为我在那里遇到了错误。
此外,该教程是从 2017 年 12 月 15 日开始的,我知道该教程cloud-functions已更新,但我不知道如何更新代码。
链接到文档:https ://firebase.google.com/docs/functions/beta-v1-diff
有人可以看一下教程并可以帮助我吗?
云功能:
const functions = require('firebase-functions');
const Firestore = require('@google-cloud/firestore');
const firestore = new Firestore();
exports.onUserStatusChanged = functions.database
.ref('/status/{userId}') // Reference to the Firebase RealTime database key
.onUpdate((event, context) => {
const usersRef = firestore.collection('/users'); // Create a reference to
the Firestore Collection
return event.before.ref.once('value')
.then(statusSnapshot => snapShot.val()) // Get latest value from the Firebase Realtime database
.then(status => {
// …Run Code Online (Sandbox Code Playgroud) javascript firebase firebase-realtime-database google-cloud-functions
我有删除的问题Object出的Array在firestore。我在Firestore中有以下数据:
现在我想删除例如第二个 Object出来的posts Array。
码:
deletePic () {
let docId = `${this.currentUser.uid}`
fb.usersCollection.doc(docId).update({
posts: firebase.firestore.FieldValue.arrayRemove()
})
.catch(function(error) {
console.error("Error removing document: ", error);
});
}
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何定义 arrayRemove()
这些是图片,每个图片都有一个删除按钮以删除图片。
我想访问in的state属性currentUser以vuex在其中user.js使用它,auth.js但如果我写它不起作用:store.state.currentUser.uid ===...
我得到这个错误:
无法读取未定义的属性“状态”。
代码中缺少什么?
那个树:
src
store
user
|>user.js
|>mutations.js
index.js
auth.js
Run Code Online (Sandbox Code Playgroud)
用户.js:
const state = {
profile: {},
loggedIn: false,
currentUser: null,
userProfile: {}
}
export default {
namespaced: true,
state
}
Run Code Online (Sandbox Code Playgroud)
auth.js:
import store from './store'
const fb = require('./firebaseConfig.js')
fb.auth.onAuthStateChanged(user => {
if (user) {
fb.postsCollection.orderBy('createdOn', 'desc').onSnapshot(querySnapshot => {
let createdByCurrentUser
if (querySnapshot.docs.length) {
createdByCurrentUser = store.state.currentUser.uid ===
querySnapshot.docChanges()[0].doc.data().userId ? 'Yes' : 'No'
console.log(createdByCurrentUser) …Run Code Online (Sandbox Code Playgroud) 我创建了一个帖子并将其存储在其中Cloud Firestore,现在我想将数据输出到vueJs名为Dashboard.vue.
但我不知道它是如何工作的。我自己尝试了一些想法,但没有一个好的最终结果。
那么如何输出这些数据呢?
文件:
Firebase => Cloud Firestore
Run Code Online (Sandbox Code Playgroud)
和
在中创建 post 方法 vueJs post.vue
createPost () {
fb.postsCollection.add({
postDetails: {
createdOn: this.postDetails.createdOn,
content: this.postDetails.content,
userId: this.currentUser.uid,
image: this.postDetails.image,
comments: this.postDetails.comments,
likes: this.postDetails.likes
}
}).then(ref => {
this.post.content = ''
this.$router.push('/dashboard')
}).catch(err => {
console.log(err)
})
}
Run Code Online (Sandbox Code Playgroud) 我想在项目中启用离线数据。我找到了正确的代码,但是我不知道在哪里实现代码
我在firebaseConfig.js文件中实现代码:
import firebase from 'firebase'
import 'firebase/firestore'
// firebase init
// init code goes here
var config = {
apiKey: '',
authDomain: '',
databaseURL: '',
projectId: '',
storageBucket: '',
messagingSenderId: ''
}
firebase.initializeApp(config)
firebase.firestore().enablePersistence()
.then(function () {
// Initialize Cloud Firestore through firebase
var db = firebase.firestore();
})
.catch(function (err) {
console.log(err)
})
// firebase utils
const db = firebase.firestore()
const oldRealTimeDb = firebase.database()
const auth = firebase.auth()
const currentUser = auth.currentUser
// date issue fix according …Run Code Online (Sandbox Code Playgroud)