gpt4 book ai didi

node.js - 获取满足查询条件的文档 ID

转载 作者:搜寻专家 更新时间:2023-10-31 22:33:21 24 4
gpt4 key购买 nike

我想获取满足云 Firestore 中给定查询的文档 ID。我的数据库的架构是这样的deyaPayusers/AuthId /用户详细信息 电话号码: /钱包 /交易我知道PhoneNo,那有没有办法得到对应的AuthId。我按照下面的描述实现了我的想法,但遇到了这个错误

Argument "documentPath" is not a valid ResourcePath. Path must be a non-empty string.

const functions = require('firebase-functions');
const Firestore = require('@google-cloud/firestore');
const firestore = new Firestore();
const admin = require('firebase-admin');
exports.transactionDetails = functions.firestore
.document('deyaPayusers/{authid}/Transaction/{authid1}')
.onWrite(event=>{
const db1 = admin.firestore();
const MAuth = event.params.authid
const transid = event.params.authid1
var payeeDocId
var newValue = event.data.data();
var payee = newValue.Payee;//Phone number of money receiver
var amt = newValue.Amount;//Amount willing to pay to payee(money receiver)
var usersRef = db1.collection('deyaPayusers').doc(MAuth);//Refers to payer doc
var payer = usersRef.PhoneNo;//Gets Phonenumber attribute of payer
const walletRefPayer = db1.collection('deyaPayusers').doc(MAuth).collection('Wallet').doc(MAuth);//Wallet reference of Payer
var walletAmt = walletRefPayer.Usd//Accessing the total amount of a person(payer) stored in the wallet
//Getting the payee details assuming, payee has an account in DeyaPay else we need to send the invite to the payee
var payeeInfo = db1.collection('deyaPayusers');//Query to retrieve the payee details from his phone number
let payeeQuery = payeeInfo.where('PhoneNo','==',payee)//We are retrieving it here,before checking the condition because we need to update the transaction details with status either it is failure or success
.get()//To get the doc ID of the Payee based upon the PhoneNo
.then(snapshot => {
snapshot.forEach(doc=>{
payeeDocId = doc.id;


}
});
/*.catch(err =>{
console.log('Error getting documents',err);
});*/
//const docID = payeeQuery.getId();//Gets the Document ID of the payee with the above phone number,in our case it is Authenticated ID.
var payeeWalletRef = db1.collection('deyaPayusers').doc(payeeDocId).collection('Wallet').doc(payeeDocId);
if(walletAmt>=amt){
//Write transactions here,becuase both actions(increment and decrement) must complete together
var payeeTransaction = db1.runTransactions(pT=>{
return pT.get(payeeWalletRef)
.then(doc =>{
var payeeDoc = doc.data(Usd)+amt;//Crediting the amount to be added
return pT.update(payeeWalletRef,{
Usd:payeeDoc});//end of update
})
})//end of payeeTransaction
var payerTransaction = db1.runTransactions(ev=>{
return ev.get(walletRefPayer)
.then(doc=>{
var payerDoc = doc.data(Usd)-amt;//Debitting the amount to be transfered
return ev.update(walletRefPayer,{
Usd:payerDoc});//end of update
});//end of then for payerTransaction
})//end of payerTransaction
}
});//onWrite() end

最佳答案

.document('deyaPayusers/{authid}/Transaction/{authid1}')

您没有正确插入此字符串。

你需要

.document(`deyaPayusers/{authid}/Transaction/{authid1}`)

此外,如果您是从谷歌访问这里的。 .document 的任何非字符串参数也会导致此异常。

关于node.js - 获取满足查询条件的文档 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48060402/

24 4 0
文章推荐: node.js - Multer上传不是一个功能
文章推荐: html - 建议用户在站点时将搜索引擎添加到 firefox
文章推荐: javascript - 我正在制作浏览器内的单色 LED 显示屏。我应该使用 还是
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com