如何向Firebase插入数据

问题描述 投票:1回答:1

我是android新手。尝试将单词插入字典firebase,但是当我在插入后控制firebase时,它仍然相同。没有变化,没有数据

我不知道我是什么错。请帮助

我的代码

 private EditText editText;
    private EditText editText2;
    private Button button;
    private FirebaseAuth mAuth;
    private FirebaseUser firebaseUser;
    private DatabaseReference  databaseReferenceCustomers = FirebaseDatabase.getInstance().getReference("kelimeler");
    private Word2 word;
    private List<Word2> words= new ArrayList<Word2>();
    private int count;
    private Boolean flag = false;

首先,尝试从Firebase读取数据

    @Override
    public void onStart(){
        super.onStart();

        databaseReferenceCustomers.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                words.clear();
                for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                    Word2 word = postSnapshot.getValue(Word2.class);
                    words.add(word);
                }
                count=words.size();
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }});
    }

然后根据接收到的数据插入数据

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View view =inflater.inflate(R.layout.fragment_frag4, container,false);
        editText=view.findViewById(R.id.editText5);
        editText2=view.findViewById(R.id.editText4);
        button=view.findViewById(R.id.button);
        mAuth = FirebaseAuth.getInstance();
        firebaseUser = mAuth.getCurrentUser();

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                add();
            }        });
        return view;

    }
    private void add(){
        String str1= String.valueOf(editText.getText());
        String str2= String.valueOf(editText2.getText());
        String id= databaseReferenceCustomers.push().getKey();

        if(words.isEmpty()){
            Word2 word1 = new Word2(id, str1, str2, firebaseUser, false);
            //databaseReferenceCustomers.child(id).setValue(word1);
            databaseReferenceCustomers.setValue(word1);

            Toast.makeText(getContext(),"kelime eklendi!",Toast.LENGTH_SHORT).show();
        }
        else {
            for (int i = 0; i < words.size(); i++) {
                if (words.get(i).getName() == str1 && words.get(i).getMean() == str2) {
                    flag = true;
                }
            }
            if (flag == false) {
                Word2 word1 = new Word2(id, str1, str2, firebaseUser, false);
                databaseReferenceCustomers.child(id).setValue(word1);
            }
            else Toast.makeText(getContext(),"kelime zaten var",Toast.LENGTH_SHORT).show();
        }    }
java android firebase firebase-realtime-database
1个回答
0
投票

您可以从Firebase读取吗?

© www.soinside.com 2019 - 2024. All rights reserved.