如何获取实时数据库中的特定密钥?

我目前无法从Firebase删除特定数据。所以基本上我有recyclerview,其中显示了我的数据,并且每个数据显示中都有一个按钮,这是“编辑”按钮。每当我尝试单击“编辑”按钮时,它都应该让我进行另一个活动,并在recyclerview中显示相同的数据,并且在那里显示另一个按钮,即“删除”按钮。但是,每当我尝试单击删除按钮时,它都会从子级中删除所有数据。我仅需要删除发生意图时传递的选定ID /数据。编辑。

EditResearch.java

package com.example.citeresearchrepository.AdminPackage;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.app.ProgressDialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

import com.example.citeresearchrepository.Model.ResearchRepository;
import com.example.citeresearchrepository.R;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.OnProgressListener;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;

public class EditResearchActivity extends AppCompatActivity {
    EditText editfilehandler_et,editrepo_title,editrepo_description,editrepo_currentdate;
    Button editrepo_savebtn;
    ImageView backbtn_editresearch;
    DatabaseReference databaseReference;
    FirebaseDatabase firebaseDatabase;
    StorageReference storageReference;
    String researchtitle,researchdate,researchname,researchdescription;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_edit_research);
        editfilehandler_et = findViewById(R.id.editfilehandler_et);
        editrepo_title = findViewById(R.id.editrepo_title);
        editrepo_description = findViewById(R.id.editrepo_description);
        editrepo_currentdate = findViewById(R.id.editrepo_currentdate);

        editrepo_savebtn = findViewById(R.id.editrepo_savebtn);
        backbtn_editresearch = findViewById(R.id.backbtn_editresearch);
        Intent intent = getIntent();
        researchtitle = intent.getStringExtra("researchtitle");
        researchdate = intent.getStringExtra("researchdate");
        researchname = intent.getStringExtra("researchname");
        researchdescription = intent.getStringExtra("researchdescription");

        databaseReference = FirebaseDatabase.getInstance().getReference("ResearchRepository");
        storageReference = FirebaseStorage.getInstance().getReference();
        editfilehandler_et.setText(researchname);
        editrepo_title.setText(researchtitle);
        editrepo_currentdate.setText(researchdate);
        editrepo_description.setText(researchdescription);

        editrepo_savebtn.setEnabled(false);
        editfilehandler_et.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                selectPDF();
            }
        });
        /* Update Files */

        backbtn_editresearch.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(), AdminResearchRepoActivity.class));
            }
        });

    }
    private void selectPDF(){
        Intent intent = new Intent();
        intent.setType("application/pdf");
        intent.setAction(intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent, "PDF FILE SELECTED"), 12);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable final Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==12 && resultCode == RESULT_OK && data!=null && data.getData()!=null){
            editrepo_savebtn.setEnabled(true);
            editfilehandler_et.setText(data.getDataString().substring(data.getDataString().lastIndexOf("/") + 1));
            editrepo_savebtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    deletePreviousImage();
                    uploadResearch(data.getData());
                }
            });
        }
    }
    private void deleteSelectedRow(){
        firebaseDatabase = FirebaseDatabase.getInstance();
        databaseReference = firebaseDatabase.getReference("ResearchRepository");
        databaseReference.removeValue();
    }
    private void uploadResearch(Uri data) {
        final String filecapture = editfilehandler_et.getText().toString();
        final String researchtitle = editrepo_title.getText().toString();
        final String researchdescription = editrepo_description.getText().toString();
        final String researchtimeline = editrepo_currentdate.getText().toString();
        final ProgressDialog progressDialog = new ProgressDialog(this);
        progressDialog.setTitle("File Uploading...");
        progressDialog.show();

        StorageReference reference = storageReference.child("ResearchRepository" +System.currentTimeMillis() + ".pdf");

        reference.putFile(data).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                Task<Uri> uriTask = taskSnapshot.getStorage().getDownloadUrl();
                while(!uriTask.isComplete());
                Uri uri = uriTask.getResult();

                ResearchRepository researchRepository = new ResearchRepository(filecapture,researchtitle,researchdescription,researchtimeline,uri.toString());
                databaseReference.child(databaseReference.push().getKey()).setValue(researchRepository);
                Toast.makeText(EditResearchActivity.this, "File Uploaded", Toast.LENGTH_SHORT).show();
                progressDialog.dismiss();
                editfilehandler_et.setText("");
                editrepo_title.setText("");
                editrepo_currentdate.setText("");
                editrepo_description.setText("");
                startActivity(new Intent(getApplicationContext(), AdminResearchRepoActivity.class));

            }
        }).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onProgress(@NonNull UploadTask.TaskSnapshot snapshot) {
                double progress = (100*snapshot.getBytesTransferred())/snapshot.getTotalByteCount();
                progressDialog.setMessage("File Uploading..."+(int)progress+"%");
            }
        });
    }
    private void deletePreviousImage(){
        StorageReference reference = FirebaseStorage.getInstance().getReference().child(researchtitle);
        reference.delete().addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override
            public void onSuccess(Void aVoid) {
                Toast.makeText(EditResearchActivity.this, "Previous File Deleted", Toast.LENGTH_SHORT).show();
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(EditResearchActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });
    }

}

AdminResearchRepoActivity.java

package com.example.citeresearchrepository.AdminPackage;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.Toast;

import com.example.citeresearchrepository.AdminAdapter.AdminRepoAdapter;
import com.example.citeresearchrepository.Model.ResearchRepository;
import com.example.citeresearchrepository.R;
import com.example.citeresearchrepository.ViewHolder.AdminResearchRepositoryViewHolder;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;

public class AdminResearchRepoActivity extends AppCompatActivity {
    ImageView adminrepo_backbtn;
    RecyclerView reporecycler;
    FloatingActionButton addresearch_btn;

    FirebaseDatabase firebaseDatabase;
    DatabaseReference databaseReference;
    AdminRepoAdapter adminRepoAdapter;
    ArrayList<ResearchRepository> researchRepositoryArrayList = new ArrayList<>();


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin_research_repo);

//      Buttons
        adminrepo_backbtn = findViewById(R.id.backbtn_adminrepo);
        addresearch_btn = findViewById(R.id.addresearch_btn);

        addresearch_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(), AddResearchActivity.class));
            }
        });
        adminrepo_backbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(), WelcomeAdminActivity.class));
            }
        });

//      Recycler
        reporecycler = findViewById(R.id.reporecycler);
        reporecycler.setLayoutManager(new LinearLayoutManager(this));

//      Firebase Connection
        firebaseDatabase = FirebaseDatabase.getInstance();
        databaseReference = FirebaseDatabase.getInstance().getReference().child("ResearchRepository");
        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                researchRepositoryArrayList = new ArrayList<ResearchRepository>();
                for (DataSnapshot dataSnapshot: snapshot.getChildren()){
                    ResearchRepository researchRepository = dataSnapshot.getValue(ResearchRepository.class);
                    researchRepositoryArrayList.add(researchRepository);
                }
                adminRepoAdapter = new AdminRepoAdapter(AdminResearchRepoActivity.this,researchRepositoryArrayList);
                reporecycler.setAdapter(adminRepoAdapter);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {
                Toast.makeText(AdminResearchRepoActivity.this, error.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });

    }

}

AdminRepoAdapter.java

package com.example.citeresearchrepository.AdminAdapter;

import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.example.citeresearchrepository.AdminPackage.EditResearchActivity;
import com.example.citeresearchrepository.Model.ResearchRepository;
import com.example.citeresearchrepository.R;

import java.lang.reflect.Array;
import java.util.ArrayList;

public class AdminRepoAdapter extends RecyclerView.Adapter<AdminRepoAdapter.AdminViewHolder>  {

    Context context;
    ArrayList<ResearchRepository> researchRepositories;

    public AdminRepoAdapter(Context c, ArrayList<ResearchRepository> repositories){
        context = c;
        researchRepositories = repositories;
    }

    @NonNull
    @Override
    public AdminViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new AdminViewHolder(LayoutInflater.from(context).inflate(R.layout.admineditrepo_row,parent,false));
    }

    @Override
    public void onBindViewHolder(@NonNull AdminViewHolder holder, final int position) {
        holder.researchtitle_view.setText(researchRepositories.get(position).getResearchtitle());
        holder.researchdate_view.setText(researchRepositories.get(position).getResearchtimeline());
        holder.researchname_view.setText(researchRepositories.get(position).getFilecapture());
        holder.researchdescription_view.setText(researchRepositories.get(position).getResearchdescription());
        holder.btnpdf_edit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(context, EditResearchActivity.class);
                intent.putExtra("researchtitle",researchRepositories.get(position).getResearchtitle());
                intent.putExtra("researchdate",researchRepositories.get(position).getResearchtimeline());
                intent.putExtra("researchname",researchRepositories.get(position).getFilecapture());
                intent.putExtra("researchdescription",researchRepositories.get(position).getResearchdescription());
                v.getContext().startActivity(intent);
            }
        });
    }

    @Override
    public int getItemCount() {
        return researchRepositories.size();
    }

    class AdminViewHolder extends RecyclerView.ViewHolder{
        public TextView researchtitle_view,researchdate_view,researchname_view,researchdescription_view,researchtitle_url;
        public Button btnpdf_edit;

        public AdminViewHolder (@NonNull View itemView) {
            super(itemView);

            researchtitle_view = itemView.findViewById(R.id.researchtitle_view);
            researchdate_view = itemView.findViewById(R.id.researchdate_view);
            researchname_view = itemView.findViewById(R.id.researchname_view);
            researchdescription_view = itemView.findViewById(R.id.researchdescription_view);
            researchtitle_url = itemView.findViewById(R.id.researchtitle_view);
            btnpdf_edit = itemView.findViewById(R.id.btnpdf_edit);
        }
    }
}

ResearchRepository.class

package com.example.citeresearchrepository.Model;

public class ResearchRepository {

    public String filecapture;
    public String researchtitle;
    public String researchdescription;
    public String researchtimeline;
    public String url;

    public ResearchRepository() {
    }

    public ResearchRepository(String filecapture, String researchtitle, String researchdescription, String researchtimeline, String url) {
        this.filecapture = filecapture;
        this.researchtitle = researchtitle;
        this.researchdescription = researchdescription;
        this.researchtimeline = researchtimeline;
        this.url = url;
    }

    public String getFilecapture() {
        return filecapture;
    }

    public void setFilecapture(String filecapture) {
        this.filecapture = filecapture;
    }

    public String getResearchtitle() {
        return researchtitle;
    }

    public void setResearchtitle(String researchtitle) {
        this.researchtitle = researchtitle;
    }

    public String getResearchdescription() {
        return researchdescription;
    }

    public void setResearchdescription(String researchdescription) {
        this.researchdescription = researchdescription;
    }

    public String getResearchtimeline() {
        return researchtimeline;
    }

    public void setResearchtimeline(String researchtimeline) {
        this.researchtimeline = researchtimeline;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }
}

这是我的实时数据库:https : //i.stack.imgur.com/lML0i.png我只想删除红色框。

拉贾·谢卡(Raja Shekar)

从我的角度来看,您正在将实例仅添加到ResearchRepository节点,而不是要删除的特定子节点。您需要跟踪要推送到ResearchRepository节点的唯一ID,并同样将其传递给Intent。

添加代码以传递要删除的ResearchRepository子级的唯一ID。然后在存在删除代码的新活动中执行此操作。

String childToDelete; //retrieve the value from the intent
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("ResearchRepository").child(childToDelete);
databaseReference.removeValue();

如果那是您的目的,应该这样做。

编辑1:-我明白你的意思。请按照我现在将要显示的方法进行操作,它将为您服务。

如下所示编辑您的课程:-

AdminRepoAdapter.java

public class AdminRepoAdapter extends RecyclerView.Adapter<AdminRepoAdapter.AdminViewHolder>  {

    Context context;
    Map<String,ResearchRepository> researchRepositories;
    ArrayList<ResearchRepository> researchRepositoriesHolder;

    public AdminRepoAdapter(Context c, Map<String,ResearchRepository> repositories){
        context = c;
        researchRepositories = repositories;
        researchRepositoriesHolder = new ArrayList<>(researchRepositories.values());
    }

    @NonNull
    @Override
    public AdminViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new AdminViewHolder(LayoutInflater.from(context).inflate(R.layout.admineditrepo_row,parent,false));
    }

    @Override
    public void onBindViewHolder(@NonNull AdminViewHolder holder, final int position) {
        holder.researchtitle_view.setText(researchRepositoriesHolder.get(position).getResearchtitle());
        holder.researchdate_view.setText(researchRepositoriesHolder.get(position).getResearchtimeline());
        holder.researchname_view.setText(researchRepositoriesHOlder.get(position).getFilecapture());
        holder.researchdescription_view.setText(researchRepositoriesHolder.get(position).getResearchdescription());
        holder.btnpdf_edit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Map.Entry<String,ResearchRepository> entry = null; //Just for initialization
                for (Map.Entry<String,ResearchRepository> var : researchRepositories.entrySet()) {
                    if(var.getValue() == researchRepositoriesHolder.get(position)){
                       entry = var;
                       break;
                    }
                }

                Intent intent = new Intent(context, EditResearchActivity.class);
                intent.putExtra("researchtitle",entry.getValue().getResearchtitle());
                intent.putExtra("researchdate",entry.getValue().getResearchtimeline());
                intent.putExtra("researchname",entry.getValue().getFilecapture());
                intent.putExtra("researchdescription",entry.getValue().getResearchdescription());
                intent.putExtra("childNodeKey",entry.getKey());
                v.getContext().startActivity(intent);
            }
        });
    }

    @Override
    public int getItemCount() {
        return researchRepositoriesHolder.size();
    }

    class AdminViewHolder extends RecyclerView.ViewHolder{
        public TextView researchtitle_view,researchdate_view,researchname_view,researchdescription_view,researchtitle_url;
        public Button btnpdf_edit;

        public AdminViewHolder (@NonNull View itemView) {
            super(itemView);

            researchtitle_view = itemView.findViewById(R.id.researchtitle_view);
            researchdate_view = itemView.findViewById(R.id.researchdate_view);
            researchname_view = itemView.findViewById(R.id.researchname_view);
            researchdescription_view = itemView.findViewById(R.id.researchdescription_view);
            researchtitle_url = itemView.findViewById(R.id.researchtitle_view);
            btnpdf_edit = itemView.findViewById(R.id.btnpdf_edit);
        }
    }
}

AdminResearchRepoActivity.java

public class AdminResearchRepoActivity extends AppCompatActivity {
    ImageView adminrepo_backbtn;
    RecyclerView reporecycler;
    FloatingActionButton addresearch_btn;

    FirebaseDatabase firebaseDatabase;
    DatabaseReference databaseReference;
    AdminRepoAdapter adminRepoAdapter;
    Map<String, ResearchRepository> researchRepositoryMap;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin_research_repo);

//      Buttons
        adminrepo_backbtn = findViewById(R.id.backbtn_adminrepo);
        addresearch_btn = findViewById(R.id.addresearch_btn);

        addresearch_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(), AddResearchActivity.class));
            }
        });
        adminrepo_backbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(), WelcomeAdminActivity.class));
            }
        });

//      Recycler
        reporecycler = findViewById(R.id.reporecycler);
        reporecycler.setLayoutManager(new LinearLayoutManager(this));

//      Firebase Connection
        firebaseDatabase = FirebaseDatabase.getInstance();
        databaseReference = FirebaseDatabase.getInstance().getReference().child("ResearchRepository");
        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                researchRepositoryMap = (Map)snapshot.getValue()
                adminRepoAdapter = new AdminRepoAdapter(AdminResearchRepoActivity.this,researchRepositoryMap);
                reporecycler.setAdapter(adminRepoAdapter);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {
                Toast.makeText(AdminResearchRepoActivity.this, error.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });

    }

}

这样,当您从AdminRepoAdapter将Intent传递给EditResearchActivity时,您的密钥将存储为'childNodeKey'。然后,您可以按照我在编辑之前提到的步骤,使用从此处获得的密钥进行删除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在实时数据库中插入记录并获取密钥

来自分类Dev

如何从Firebase中的实时数据库获取数据

来自分类Dev

我如何从Firebase实时数据库中获取属于随机密钥的子级的数据-使用react native?

来自分类Dev

如何从Firebase实时数据库获取包含唯一密钥的字符串

来自分类Dev

如何从Xamarin.Forms上的Firebase实时数据库获取ID节点(密钥)

来自分类Dev

Angularfire5 - 获取列表中实时数据库文档的密钥 - #askfirebase

来自分类Dev

如何消除实时数据库Firebase抖动中的自动生成的密钥

来自分类Dev

如何获取firebase实时数据库的数据

来自分类Dev

从Flutter中的实时数据库获取特定数据值

来自分类Dev

如何在firebase实时数据库android中的唯一键下获取特定节点

来自分类Dev

Firebase 实时数据库,从键值对中获取数据

来自分类Dev

数据更改后如何从Firebase实时数据库中检索特定数据

来自分类Dev

删除 firebase 实时数据库中的数据时,如何从列表中删除特定项目?

来自分类Dev

如何查询实时数据库以获取按时间排序的特定键的对象

来自分类Dev

如何在flutter中从Firebase实时数据库中获取数据?

来自分类Dev

如何从android中的firebase实时数据库中获取数据

来自分类Dev

如何从Firebase实时数据库获取最新记录

来自分类Dev

如何从Web中的Firebase实时数据库获取数据?

来自分类Dev

如何从Firebase实时数据库中获取数据并将其显示在微调器上

来自分类Dev

如何使用云函数在 Firebase 实时数据库中查找特定子项

来自分类Dev

如何限制对实时数据库中特定节点下声明的用户的写访问权限

来自分类Dev

Flutter:如何从Firebase实时数据库中获取新添加的记录?

来自分类Dev

如何从以下实时数据库结构中获取检索项?

来自分类Dev

如何从Firebase实时数据库中的.set()获取自动生成的ID?

来自分类Dev

如何获取Firebase实时数据库中添加的最后一项?

来自分类Dev

如何从Android中的Firebase实时数据库获取价值?

来自分类Dev

如何在 Firebase 实时数据库中获取子名称

来自分类Dev

如何从firebase存储获取imageUrl以存储在firebase实时数据库中?

来自分类Dev

如何从Firebase实时数据库中删除?

Related 相关文章

  1. 1

    在实时数据库中插入记录并获取密钥

  2. 2

    如何从Firebase中的实时数据库获取数据

  3. 3

    我如何从Firebase实时数据库中获取属于随机密钥的子级的数据-使用react native?

  4. 4

    如何从Firebase实时数据库获取包含唯一密钥的字符串

  5. 5

    如何从Xamarin.Forms上的Firebase实时数据库获取ID节点(密钥)

  6. 6

    Angularfire5 - 获取列表中实时数据库文档的密钥 - #askfirebase

  7. 7

    如何消除实时数据库Firebase抖动中的自动生成的密钥

  8. 8

    如何获取firebase实时数据库的数据

  9. 9

    从Flutter中的实时数据库获取特定数据值

  10. 10

    如何在firebase实时数据库android中的唯一键下获取特定节点

  11. 11

    Firebase 实时数据库,从键值对中获取数据

  12. 12

    数据更改后如何从Firebase实时数据库中检索特定数据

  13. 13

    删除 firebase 实时数据库中的数据时,如何从列表中删除特定项目?

  14. 14

    如何查询实时数据库以获取按时间排序的特定键的对象

  15. 15

    如何在flutter中从Firebase实时数据库中获取数据?

  16. 16

    如何从android中的firebase实时数据库中获取数据

  17. 17

    如何从Firebase实时数据库获取最新记录

  18. 18

    如何从Web中的Firebase实时数据库获取数据?

  19. 19

    如何从Firebase实时数据库中获取数据并将其显示在微调器上

  20. 20

    如何使用云函数在 Firebase 实时数据库中查找特定子项

  21. 21

    如何限制对实时数据库中特定节点下声明的用户的写访问权限

  22. 22

    Flutter:如何从Firebase实时数据库中获取新添加的记录?

  23. 23

    如何从以下实时数据库结构中获取检索项?

  24. 24

    如何从Firebase实时数据库中的.set()获取自动生成的ID?

  25. 25

    如何获取Firebase实时数据库中添加的最后一项?

  26. 26

    如何从Android中的Firebase实时数据库获取价值?

  27. 27

    如何在 Firebase 实时数据库中获取子名称

  28. 28

    如何从firebase存储获取imageUrl以存储在firebase实时数据库中?

  29. 29

    如何从Firebase实时数据库中删除?

热门标签

归档