gpt4 book ai didi

javascript - Firebase 函数将错误的 key 写入 firebase 数据库

转载 作者:行者123 更新时间:2023-11-30 19:56:13 25 4
gpt4 key购买 nike

我有一个云函数,我直接在应用程序中调用它。

我的代码:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.sharePost = functions.https.onCall((data, context) => {
var postkey = data.text;
const uid = data.uid;

var list= [];

var db = admin.database();

var ref = db.ref("users").child(uid).child("followers");
ref.once('value', function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var childKey = childSnapshot.key;
list.push(childKey);
});
var refsave = db.ref("posts");

for (var i = 0; i < list.length; i++) {
refsave.child(list[i]).update({
postkey:""
});
}

});

});

我用这段代码调用这个函数:

private Task<String> sharePost(String text) {
Map<String, String> data = new HashMap<>();
data.put("text", text);
data.put("uid",auth.getUid());

return mFunctions
.getHttpsCallable("sharePost")
.call(data)
.continueWith(new Continuation<HttpsCallableResult, String>() {
@Override
public String then(@NonNull Task<HttpsCallableResult> task) throws Exception {
String result = (String) task.getResult().getData();
return result;
}
});
}

我在这个任务中放置了 post key (类似这样的东西:-LUpD2kWvUct5KiihU4M),我想做的是编写该 key 。但不是该函数,而是在变量名下写入数据。

这张图片更能说明我想要什么

enter image description here

最佳答案

因为你想更新多个值,你可以创建更新对象并一次写入它们。

更新也不同于 set()。更新对象键是更新的路径,值将写入该路径。此外,该路径是相对于您将调用 update() 的 child 而言的。

像这样更新你的 firebase 函数:

var ref = db.ref("users").child(uid).child("followers");
ref.once('value', function (snapshot) {
let update={};
snapshot.forEach(function (childSnapshot) {
var childKey = childSnapshot.key;
update[`${childKey}/${postkey}`]="THE VALUE YOU WILL STORE"
});
var refsave = db.ref("posts");

return refsave.update(update);

});

有关更新如何在 admin sdk 中工作的更多详细信息,请参阅文档。 https://firebase.google.com/docs/reference/admin/node/admin.database.Reference#update

关于javascript - Firebase 函数将错误的 key 写入 firebase 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53961290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com