这是从云功能获取密钥的请求。我在控制台中收到密钥,但它没有返回我存储值的firestore数据库。
这是我的代码:
return request(options, function (error, response, body){
tokenName = body.notification_key;
console.log('Key: ' + tokenName); //gives me the key successfully
return Promise.all([tokenName]).then(() =>{ //this code doesn't run in the firestore functions console.
console.log('key name: ' + tokenName);
return db.collection('Users').doc(user_id).set({name: name1,token_id: token_id1,notification_key: tokenName,image: image,email: token_email}).then(() => {
return console.log("Document successfully written!");
})
.catch(function(error) {
return console.error("Error writing document: ", error);
});
});
});
答案 0 :(得分:0)
您的代码可以更简单:
return request(options, function (error, response, body){
tokenName = body.notification_key;
console.log('Key: ' + tokenName);
return db.collection('Users').doc(user_id).set({name: name1,token_id: token_id1,notification_key: tokenName,image: image,email: token_email}).then(() => {
return console.log("Document successfully written!");
})
.catch(function(error) {
return console.error("Error writing document: ", error);
});
});
但是仍然没有在响应中写出结果,但是很难确定结果与您共享的结果有什么关系。
我不确定你为什么要在这里使用Promise.all()
。我强烈建议您在继续之前阅读一些有关承诺的教程。这个blog post explains the basics,this video explains promises和this video一样。