Я занимаюсь разработкой приложения для социальных сетей. Когда пользователи делятся чем-то, с чем я справляюсь на телефоне, для цикла.
Вот мой код Java:
DatabaseReference reffollowers =FirebaseDatabase.getInstance().getReference().child("users").child(auth.getUid()).child("followers");
reffollowers.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
List<String> followerslist = new ArrayList<>();
for(DataSnapshot ds:dataSnapshot.getChildren()){
String a = ds.getKey();
followerslist.add(a);
}
DatabaseReference refpost = FirebaseDatabase.getInstance().getReference().child("posts");
for(int i=0;i<followerslist.size();i++){
refpost.child(followerslist.get(i)).child("unique_post_key").setValue("");
}
progressDialog.dismiss();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Но это требуетСлишком много времени. Я хочу, чтобы функции firebase обрабатывали его. Это мой код JavaScript, но он не работает. Я не знаю javaScript.
Это мой код JavaScript:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.sharePost = functions.https.onCall((data, context) => {
const postkey = data.text;
const uid = context.auth.uid;
var followers_list [];
var ref = admin.database().ref("users").child(uid).child("followers");
ref.once("value", function(snapshot) {
snapshot.forEach(function(_child){
followers_list.push(_child.key);
});
});
for(count2 = 0; count2 < takipci_listesi.lengt; count++) {
admin.database().ref('posts/' + followers_list[count2]).set({
postkey: ""
});
}
});
Можете ли вы, ребята, помочь мне?
Кроме того, моя база данных Firebase выглядит следующим образом
+root
+posts
+user_uid
+unique_post_key:""
Когда я хочу получить сообщения, я передаю ключ записи с этим кодом
dataSnapshot.getkey();