我在函数中获得了一个查询快照。 并希望将整个查询快照带到另一个函数(functionTwo)。 在functionTwo中,我想在querysnapshot WITHOUT forEach中获取特定文档。具体的文档可以通过不同的案例进行更改。
ref_serial_setting.get()
.then(querysnapshot => {
return functionTwo(querysnapshot)
})
.catch(err => {
console.log('Error getting documents', err)
})
let functionTwo = (querysnapshot) => {
// getting value
const dataKey_1 = "dataKey_1"
// Tried 1
const value = querysnapshot.doc(dataKey_1).data()
// Tried 2
const value = querysnapshot.document(dataKey_1).data()
// Tried 3 (Put 'data_name': dataKey_1 in that doc)
const value = querysnapshot.where('data_name', '==', dataKey_1).data()
}
结果是所有这些尝试都不是一个功能。
如何从querysnapshot获取特定文档数据?
或
有没有简单的方法可以将查询快照更改为JSON?
答案 0 :(得分:6)
您可以使用docs
的{{1}}属性获取文档快照的数组。之后,您将不得不循环获取文档快照的数据以查找您的文档。
QuerySnapshot
或如果您实际上不需要完整const docSnapshots = querysnapshot.docs;
for (var i in docSnapshots) {
const doc = docSnapshots[i].data();
// Check for your document data here and break when you find it
}
,则可以使用QuerySnapshot
函数在调用之前应用过滤器查询对象上的where
:
get
答案 1 :(得分:0)
SqlCommand cmd = new SqlCommand("Select * from users Where username = @username and password = @password", sqlcon);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@username", txtUsername.Text);
cmd.Parameters.AddWithValue("@password", txtPassword.Text);
SqlDataReader dr = cmd.ExecuteReader();
sqlcon.Open();
cmd.ExecuteNonQuery();
sqlcon.Close();
if (dr.HasRows)
{
Main objMain = new Main();
this.Hide();
objMain.Show();
}
else
{
MessageBox.Show("Check your username and password");
}
来自https://firebase.google.com/docs/firestore/query-data/get-data
答案 2 :(得分:0)
有一种简便的方法,每个StyleSheet
都有一个属性contentContainerStyle={styles.contentContainer}
,该属性返回一个QuerySnapshot
的数组。请参阅QuerySnapshot文档。
docs