2017-05-02 55 views
0

我正在構建一個Android應用程序,允許用戶評論廣告牌頂部100上的每首歌曲(我從JSON文件中解析出這些信息)。我如何去存儲評論(最好是使用Firebase),並在新評論發佈後顯示並刷新它們?Firebase - 用戶對事物的評論

回答

1

我假設每首歌都有唯一的ID。因此,對於每首歌曲,你可以做什麼是 -

  1. 獲取歌曲參考

    private DatabaseReference mDatabase; 
    
    mDatabase = FirebaseDatabase.getInstance().getReference(); 
    
    mSongRef = mDatabase.child("SongID"); 
    
  2. 每當一首歌曲)有人評論,推(Comment類的對象作爲這首歌的子節點:

    String commentKey = mSongRef.push().getKey(); 
    mSongRef.child(commentKey).setValue(comment); 
    
  3. 我們獲取新添加的註釋

    mSongRef.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
    
        Comment comment = dataSnapshot.getValue(Comment.class); 
    
        Log.d(TAG, "Comment: " + comment.getCommentText() + ", User: " + comment.getUsername()); 
    } 
    
    @Override 
    public void onCancelled(DatabaseError error) { 
    // Failed to read value 
        Log.w(TAG, "Failed to read value.", error.toException()); 
    }}); 
    
  4. 現在您已擁有最新數據,您可以將註釋添加到列表並更新回收站/列表視圖。

+0

因此,如果我將我的歌曲存儲在數據庫中,這對我來說是完美的。但是,我只有一個JSON文件,上面有100首歌曲,我正在解析該文件,並使用Async Task將每個歌曲顯示爲歌曲對象。我可以點擊每個歌曲對象,它會導致一個包含應用程序用戶評論的頁面。那麼在這種情況下,我可以通過哪些方式來解決這個問題? –

+0

不,我不建議將歌曲存儲在Firebase數據庫中。我說的是隻存儲與每首歌曲相關的歌曲ID,並將其作爲節點存儲,其中評論將作爲兒童存儲在該歌曲中。所以,當用戶點擊一首歌時......從本地存儲器或您存儲的任何地方播放該歌曲並從Firebase獲取評論。 –