我有此操作可以获取存储在Firebase中的特定位置网址的详细信息。
原始代码(版本1)没有问题,我调度authGetToken(),代码识别存储在redux中的令牌(字符串),然后使用它来获取存储的数据。
return dispatch => {
dispatch(authGetToken())
.then(token => {
return fetch("https://myProject/location.json?auth=" + token);
})
.catch(() => {
alert("No valid token found!");
})
.then(res => {
if (res.ok) {
return res.json();
} else {
throw(new Error());
}
})
};
但是现在我修改了url要求以包含用户UID作为url的一部分,它不起作用。我知道我的逻辑肯定存在缺陷,但我看不到它。
我希望写的是,一旦我调度authGetToken(),令牌调度authGetUserUID然后使用两个字符串(userUID和token)来获取数据。
return dispatch => {
dispatch(authGetToken())
.then(token => {
dispatch(authGetuserUID())
return fetch("https://myProject/location/"+ userUID + ".json?auth=" + token);
})
.catch(() => {
alert("No valid token found!");
})
.then(res => {
if (res.ok) {
return res.json();
} else {
throw(new Error());
}
})
};
非常感谢你们向我指出显而易见的事情> <因为我的诺布眼睛看不到它。提前致谢。
我认为它可能与userUID
有关,它似乎没有在任何地方初始化。也许尝试这样的事情:
return dispatch => {
dispatch(authGetToken()).then(token => {
dispatch(authGetuserUID()).then(userUID=>{
return fetch("https://myProject/location/"+ userUID + ".json?auth=" + token);
})
})
.catch(() => {
alert("No valid token found!");
})
.then(res => {
if (res.ok) {
return res.json();
} else {
throw(new Error());
}
})
};