【发布时间】:2021-06-19 19:08:08
【问题描述】:
我有一个包含以下代码的云函数。我要求从我的 iOS 应用程序进行查询。即使数据在 Cloud Firestore 集合中,该函数仍会转到 else 语句,这意味着控制台打印“NOT IN COLLECTION”。有人可以帮忙吗?
云功能代码:
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();
const db = admin.firestore();
const FieldValue = admin.firestore.FieldValue;
exports.validateShop = functions.https.onCall((data, context) => {
const uid = context.auth.uid;
console.log("Function called by UID: " + uid);
const email = context.auth.token.email;
console.log("Email: " + email);
const shop = data.shop;
console.log("Recieved: "+ data);
const docRef = db.collection("Users").where("shopName", "==", shop);
docRef.get().then(function(doc) {
if (doc.exists) {
const docDelete = db.collection("shops").doc(uid);
const updateDoc = docDelete.doc(uid).update({
"shopName": FieldValue.delete(),
});
console.log(shop + ": EXISTS. DOCUMENT UPDATED ");
return {success: true};
} else {
console.log(shop + ": NOT IN COLLECTION ");
return {success: false};
}
}).catch((error) => {
return {"shop": "Error getting document"};
});
return {
message: shop,
};
});
这就是我在 iOS 应用中的调用方式:
func validateTurn(){
let data = ["shop": "ThaiSook"]
functions.httpsCallable("validateShop").call(data) { (result, error) in
print("Function returned")
if let err = error {print(err)}
if let res = result {print(res)}
}
}
【问题讨论】:
标签: javascript node.js swift google-cloud-firestore google-cloud-functions